Java Collection集合面试题(精选)

作者 : 开心源码 本文共1576个字,预计阅读时间需要4分钟 发布时间: 2022-05-12 共199人阅读

1、Java集合Collection框架是什么?列出集合框架的少量好处?

在每一种编程语言都有集合的使用,最初的Java版本包含了几类集合:向量,堆栈,哈希表,数组。但在更大的范围使用是在Java 1.2中集合框架想出了该组的所有集合接口,实现和算法。 Java集合的线程安全操作和使用泛型和并发集合类等。它还包括阻塞的接口及其实现在Java并发包。

集合框架的好处是:

使用核心集合类,而不需要实现我们自己的集合类,减少了开发工作。

使用经过测试的集合框架类提高代码质量。

使用JDK附带的集合类减少代码维护的工作。

可重用性和互操作性

2、泛型集合框架的好处是什么呢?

Java 1.5中附带泛型和所有收集接口和接口实现的大量使用。泛型允许我们提供一个集合可以包含Object类型,所以假如你尝试增加任何其余类型的元素,它会引发编译时错误。这就避免了在运行时抛出,由于你会得到编译错误。泛型使代码更干净,由于我们并不需要使用溯型casting和instanceof检查。它也添加了运行时的好处,由于不生成的做类型检查字节码指令。

3、Java集合框架的基本接口是什么?

Collection是集合层次的根。一个集合包含一组对象作为其元素。 Java平台不提供任何直接实现这个接口。

Set 是一个不能包含重复的元素的集合。此接口模型代表数学Set的笼统,用来代表一组Set,如一副扑克牌。

List是有序集合,可以包含重复的元素。您可以从它的索引访问任何元素。更像是动态长度的数组列表。

一个Map是一个键映射值的对象。一个Map不能包含重复键:每个key只能映射一个值。

其余少量接口Queue, Dequeue, Iterator, SortedSet,SortedMap的和listIterator。

4、为什么要集合不能继承Cloneable和Serializable接口?

Collection接口指定一组称为元素的对象。元素如何被组织取决于具体实现。例如,少量LIST实现允许重复的元素,而SET不允许。Collection是一种笼统表示,而克隆和序列化重在执行,应该是在Collection具体实现子类中根据具体元素组织情况来实现。因而,强制在所有实现都要有克隆和序列化是不够灵活的,具备限制性。

5、为什么MAP接口不实现Collection接口?

尽管Map接口和它的实现是集合框架的一部分,但是MAP不是集合,而且集合也不是地图。因而,它实现集合接口没有任何意义。

6、Iterator是什么?

Iterator接口提供遍历集合的方法。从一个集合中使用迭代方法,我们可以得到迭代器实例。迭代器允许呼叫者在迭代过程中从集合中删除元素。

7、枚举Enumeration 和Iterator接口之间的差异是什么?

枚举是快迭代两倍,使用非常少的内存。枚举适合基本需求。但Iterator是更安全,由于它总是拒绝其余线程修改它正在迭代集合中的对象。

8、为什么没有方法像Iterator.add()将元素增加到集合?

这是语义不清,对于迭代一个集合,必需保证迭代的顺序。但是请注意,ListIterator的确提供了一个add的操作,而且它保证迭代的顺序。

9、为什么迭代器没有不用移动光标来直接取得下一个元素的方法?

它可以基于当前Iterator接口之上实现,但很少使用,没有意义。

10、Iterator和listIterator之间有什么不同?

我们可以使用迭代器Iterator遍历Set和List集合,而ListIterator只可以使用List。

迭代器遍历只有向前的方向,而ListIterator可以用来在两个方向遍历。

ListIterator继承Iterator接口,并配备了额外的功能,如增加元素,更换一个元素,能取得上一个和下一个元素的索引位置。

写在最后:欢迎留言探讨,加关注,持续升级!

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Java Collection集合面试题(精选)

发表回复