在java面试中,面试官会考面试者很多问题,一般都会是基础性的知识点,因此大家想要通过java面试,就需要将java基础搞好,那java常见集合面试题有哪些?下面来我们就来给大家讲解一下。
1、哪些集合类是线程安全的?
Vetory:比ArrayList多了一个synchronized(线程安全),因为效率比较低,现在不建议使用。
HashTable:比HashMap多了个synchronized(线程安全),不建议使用。
ConcurrentHashMap:是Java5中支持高并发、高吞吐量的线程安全HashMap实现。它由Segment数组结构和HashEntry数组结构组成。(推荐使用)
2、Iterator 和 ListIterator 有什么区别?
Iterator 可以遍历 Set 和 List 集合,而 ListIterator 只能遍历 List。
Iterator 只能单向遍历,而 ListIterator 可以双向遍历(向前/后遍历)。
ListIterator 实现 Iterator 接口,然后添加了一些额外的功能,比如添加一个元素、替换一个元素、获取前面或后面元素的索引位置。
3、说一下ArrayList的优缺点
优点:底层使用数组实现,是一种随机访问模式,由于他实现了Random Access,所以他查询的时候非常快,按顺序添加元素也非常方便。
缺点:删除元素需要使用元素复制操作,如果元素多时,非常消耗性能。不按顺序,即某个位置插入元素时,也需要进行元素复制,元素多时,也是非常消耗性能。
所以ArrayList适合按顺序添加元素以及随机访问场景。
4、集合类的特点有哪些?
第一点,集合类这种框架是高性能的。对基本类集(动态数组,链接表,树和散列表)的实现是高效率的。一般人很少去改动这些已经很成熟并且高效的APl;
第二点,集合类允许不同类型的集合以相同的方式和高度互操作方式工作;
第三点,集合类容易扩展和修改,程序员可以很容易地稍加改造就能满足自己的数据结构需求。
5、Collection框架中实现比较要实现什么接口
要实现比较有两种方式:第一种,实体类实现Comparable
第一种,实现Comparable接口:
第二种,实现Comparator接口定义一个外部比较器类,实现Comparator接口
6、List 和 Map 区别?(数据结构,存储特点)
这个要从两个方面来回答,一方面是List和Map的数据结构,另一方面是存储数据的特点。在数据结构方面,List存储的是单列数据的集合,而Map存储的是key、value类型的数据集合。在数据存储方面,List存储的数据是有序且可以重复的,而Map中存储的数据是无序且key值不能重复(value值可以重复)。
Java集合是java基础知识点,作为java面试者,我们需要了解并且熟练其的使用,这样在面试中问到集合问题才不会慌张!最后大家如果想要了解更多Java面试题知识,敬请关注奇Q工具网。
推荐阅读: