1.为什么Map接口不继承Collection 接口?

  • Set是无序集合,并且不允许重复的元素
  • List是有序的集合,并且允许重复的元素
  • 而Map是键值对
  • 它被视为是键的set和值的set的组合
  • Map被设计为键值对的集合,所以不需要继承Collection 接口

2.HashMap和Hashtable之间的区别?

  • 同步或线程安全
  • Null键和Null值
  • 迭代值
  • 默认容量大小

3.comparable 和 comparator的不同之处?

  • comparable接口实际上是出自java.lang包
  • 它有一个 compareTo(Object obj)方法来将objects排序
  • comparator接口实际上是出自 java.util 包
  • 它有一个compare(Object obj1, Object obj2)方法来将objects排序

4.如何对Object的list排序?

  • 对objects数组进行排序,我们可以用Arrays.sort()方法
  • 如果要对objects的集合进行排序,需要使用Collections.sort()方法

5. fail-fast 与 fail-safe 之间的区别?

  • Fail fast快速地报告任何的failure。无论何时任何一个问题都会引发 fail fast系统fails
  • 在Java Fail fast 迭代器中,迭代objects集合有时会出现并发修改异常,出现这种情况有2个原因
  • 如果一个线程正在迭代一个集合,而另一个线程同时试图修改这个集合
  • 在调用remove()方法后,如何我们还试图去修改集合object

6. Iterator、ListIterator 和 Enumeration的区别?

  • Enumeration接口在Java1.2版本开始有,所以Enumeration是合法规范的接口
  • Enumeration使用elements()方法
  • Iterator对所有Java集合类都有实现
  • Iterator使用iterator方法
  • Iterator只能往一个方向前进
  • ListIterator仅仅对List类型的类实现了
  • ListIterator使用listIterator()方法

7.Java 中 Set 与 List 有什么不同?

  • Set是一个不允许重复元素存在的集合
  • Set没有索引
  • Set仅仅允许一个null值
  • Set有类:HashSet、LinkedHashMap、TreeSet
  • List有索引
  • List允许N个null值
  • List可以按插入顺序显示
  • List有类:Vector、ArrayList、LinkedList

8. arraylist 与 vector 的区别?

  • Vector 在Java的第一个版本就引入了,也就是说vector是一个合法规范的类
  • ArrayList在Java1.2版本引入的,是Java 集合框架的组成部分
  • Vector是同步的
  • ArrayList是不同步的

9.什么类实现了List接口?

  • ArrayList
  • LinkedList
  • Vector

10.什么类实现了Set接口?

  • HashSet
  • LinkedHashSet
  • TreeSet

11.如何保证一个集合线程安全?

  • Vector, Hashtable, Properties 和 Stack 都是同步的类,所以它们都线程安全的,可以被使用在多线程环境中
  • 使用Collections.synchronizedList(list)) 方法,可以保证list类是线程安全的
  • 使用java.util.Collections.synchronizedSet()方法可以保证set类是线程安全的

12.是否可以往 TreeSet 或者 HashSet 中添加 null 元素?

  • 可以往 hashset 中添加一个 null
  • TreeSet 也允许一个 null值

13.解释下Collection的接口继承关系?

14.Iterator符合哪个设计模式?

  • Iterator 设计模式

15.HashSet 实现了哪个数据结构?

  • HashSet 内部实现了hashmap

16.为什么 Collection 不能继承 Cloneable 和 Serializable?

  • List和Set唯一继承 Collection 接口
  • SortedMap 继承了 Map 接口

17.hashCode() 和 equals() 方法的重要性?如何在Java中使用它们?

  • hashCode() 和 equals() 方法定义在”object”类中
  • 如果equals() 方法在比较2个对象时返回true,那么hashCode()的返回值必须得一样

18.array 和 arraylist 的区别?

  • Array类似object集合类型,大小固定
  • Arraylist是同质和异质元素的集合

19.什么是 Properties 类?

  • Properties 是Hashtable的子类。它被用于维护值的list,其中它们的键、值都是String类型

20.如何将一个字符串转换为arraylist?

  • 使用 arrayList.toArray() 方法

Java集合框架面试题目的更多相关文章

  1. 【转】Java集合框架面试问题集锦

    Java集合框架(例如基本的数据结构)里包含了最常见的Java常见面试问题.很好地理解集合框架,可以帮助你理解和利用Java的一些高级特性.下面是面试Java核心技术的一些很实用的问题. Q:最常见的 ...

  2. Java集合框架 面试问题整理

    简介 java集合类是java.util 包中的重要内容.java集合框架包含了大量集合接口以及这些接口的实现类和操作他们的算法. java集合框架图 主要提供的数据结构 List 又称有序的Coll ...

  3. java集合框架面试要点整理

  4. Java集合框架总结—超详细-适合面试

    Java集合框架总结—超详细-适合面试   一.精简: A.概念汇总 1.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口, ...

  5. (转)Java集合框架:HashMap

    来源:朱小厮 链接:http://blog.csdn.net/u013256816/article/details/50912762 Java集合框架概述 Java集合框架无论是在工作.学习.面试中都 ...

  6. Java集合框架(常用类) JCF

    Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...

  7. 浅谈JAVA集合框架

    浅谈JAVA集合框架 Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection cl ...

  8. Java集合框架面试题

    www.cnblogs.com/zhxxcq/archive/2012/03/11/2389611.html 这里的两个图很形象,由于放进图片链接,图片显示不了,所以只能给出该链接. Java集合框架 ...

  9. Java集合框架:HashMap

    转载: Java集合框架:HashMap Java集合框架概述   Java集合框架无论是在工作.学习.面试中都会经常涉及到,相信各位也并不陌生,其强大也不用多说,博主最近翻阅java集合框架的源码以 ...

随机推荐

  1. 将LibreOffice文档转换为豆瓣日记

    豆瓣日记的编辑器一直以来都只支持纯文本的,因此无法将原先在LibreOffice中写的带有简单格式的文章导出.由于我在豆瓣主要写一些随笔性的内容,所以它们在LibreOffice中排版时也并未用到什么 ...

  2. loj6077

    题解: 网上的做法好像都是容斥 那就先说一下容斥 首先问题等价于求下面这个式子的方案数 $$\sum_{i=1}^{n} ai (0<ai<i) =k$$ 直接$dp$复杂度是$nk$的, ...

  3. Javascript 精简语法介绍

    1. 取整同时转成数值型: '10.567890'|0 结果: 10 '10.567890'^0 结果: 10 -2.23456789|0 结果: -2 ~~-2.23456789 结果: -2 2. ...

  4. Windows10 永久激活查询/激活时间查询/激活查询命令/激活码查询

    1.使用 Windows + R组合快捷键打开运行命令框 运行: slmgr.vbs -dlv       命令 可以查询到Win10的激活信息,包括:激活ID.安装ID.激活截止日期等信息.看不懂的 ...

  5. Servlet(六):Cookie

    Cookie 学习:问题: HTTP 协议是没有记忆功能的,一次请求结束后,相关数据会被销毁.如果第二次的请求需要使用相同的请求数据怎么办呢?难道是让用户再次请求书写吗?解决: 使用 Cookie 技 ...

  6. 在js中网页面写入数据时需要注意的几点

    网页代码 <tbody id="t_gun"> <s:iterator value="gunList" status="st&quo ...

  7. Python数据分析基础教程

    Python数据分析基础教程(第2版)(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1_FsReTBCaL_PzKhM0o6l0g 提取码:nkhw 复制这段内容后 ...

  8. 4. Spring 如何通过 XML 文件配置Bean,以及如何获取Bean

    在 Spring 容器内拼凑 bean 叫做装配.装配 bean 的时候,你是在告诉容器,需要哪些 bean ,以及容器如何使用依赖注入将它们配合在一起. 理论上,bean 装配的信息可以从任何资源获 ...

  9. Qt中在UI文件中新建控件并命名,但在代码中无法识别UI中的控件?

    代码中添加FilePathLineEdit控件,显示标准文件选择对话框显示选择的文件路径,但在槽函数中ui->FilePathLineEdit->setText("FilePat ...

  10. .NET平台常用的框架

    转自:https://www.cnblogs.com/lhxsoft/p/8609089.html 分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahe ...