我们要想通过java面试,怎么能少得了java面试题呢!看面试题,我们可以知道自己的不足之处,就是弥补,这样也能提高自己技能,那下面来我们就来给大家分享一些java集合类面试题。
1. Iterator 是什么?
一些集合类提供了内容遍历的功能,通过java.util.Iterator接口。这些接口允许遍历对象的集合。依次操作每个元素对象。当使用Iterators时,在获得Iterator的时候包含一个集合快照。通常在遍历一个Iterator的时候不建议修改集合本省。
2.Collection 和 Collections的区别有哪些?
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
3. 如何决定选用HashMap还是TreeMap?
对于在Map中插入、删除和定位元素这类操作,HashMap是最好的选择。然而,假如你需要对一 个有序的key集合进行遍历,TreeMap是更好的选择。基于你的collection的大小,也许向HashMap中 添加元素会更快,将map换为TreeMap进行有序key的遍历。
4.哪些集合类提供对元素的随机访问?
ArrayList、HashMap、TreeMap和HashTable类提供对元素的随机访问。
5.EnumSet是什么?
java.util.EnumSet是使用枚举类型的集合实现。当集合创建时,枚举集合中的所有元素必须来自 单个指定的枚举类型,可以是显示的或隐示的。EnumSet是不同步的,不允许值为null的元素。它也提 供了一些有用的方法,比如copyOf(Collection c)、of(E first,E…rest)和complementOf(EnumSet s)。
6.哪些集合类是线程安全的?
Vector、HashTable、Properties和Stack是同步类,所以它们是线程安全的,可以在多线程环境 下使用。Java1.5并发API包括一些集合类,允许迭代时修改,因为它们都工作在集合的克隆上,所以 它们在多线程环境中是安全的。
7. 集合框架里实现的通用算法有哪些?
Java集合框架提供常用的算法实现,比如排序和搜索。Collections类包含这些方法实现。大部分 算法是操作List的,但一部分对所有类型的集合都是可用的。部分算法有排序、搜索、混编、最大最小值。
8. 与Java集合框架相关的有哪些最好的实践?
(1)根据需要选择正确的集合类型。比如,如果指定了大小,我们会选用Array而非ArrayList。 如果我们想根据插入顺序遍历一个Map,我们需要使用TreeMap。如果我们不想重复,我们应该使用Set。
(2)一些集合类允许指定初始容量,所以如果我们能够估计到存储元素的数量,我们可以使用 它,就避免了重新哈希或大小调整。
(3)基于接口编程,而非基于实现编程,它允许我们后来轻易地改变实现。
(4)总是使用类型安全的泛型,避免在运行时出现ClassCastException。
(5)使用JDK提供的不可变类作为Map的key,可以避免自己实现hashCode()和equals()。
(6)尽可能使用Collections工具类,或者获取只读、同步或空的集合,而非编写自己的实现。它 将会提供代码重用性,它有着更好的稳定性和可维护性。
这些就是java集合类相关面试题,我们在看面试题的时候,可以找一些专题面试题来看,这样可以快速检验自己掌握java的程度!最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。
推荐阅读: