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接口,并配备了额外的功能,如添加元素,更换一个元素,能获得上一个和下一个元素的索引位置。
Java高架构师、分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频免费获取架构群:854180697 加群链接