java常见集合面试题有哪些?java常见集合面试题

在java面试中,面试官会考面试者很多问题,一般都会是基础性的知识点,因此大家想要通过java面试,就需要将java基础搞好,那java常见集合面试题有哪些?下面来我们就来给大家讲解一下。

java常见集合面试题.jpg

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接口,并实现 compareTo(T t) 方法,我们称为内部比较器。第二种,创建一个外部比较器,这个外部比较器要实现Comparator接口的 compare(T t1, T t2)。

第一种,实现Comparable接口:

第二种,实现Comparator接口定义一个外部比较器类,实现Comparator接口

6、List 和 Map 区别?(数据结构,存储特点)

这个要从两个方面来回答,一方面是List和Map的数据结构,另一方面是存储数据的特点。在数据结构方面,List存储的是单列数据的集合,而Map存储的是key、value类型的数据集合。在数据存储方面,List存储的数据是有序且可以重复的,而Map中存储的数据是无序且key值不能重复(value值可以重复)。

Java集合是java基础知识点,作为java面试者,我们需要了解并且熟练其的使用,这样在面试中问到集合问题才不会慌张!最后大家如果想要了解更多Java面试题知识,敬请关注奇Q工具网。

推荐阅读:

java书写main方法怎么弄?Java main方法常见问题

java写游戏脚本怎么样?java如何开发桌球小游戏?

java应用程序的执行入口是什么?java工作原理是怎样的?