collection
在java集合中,算是顶级接口,它继承了iterable
接口,不能实例化,只能实例化其子类。之因此须要这样一个接口,是由于java做为面向对象,老是避免不了处理多个对象的状况,要处理多个对象,首先须要容器存储,这个容器就是集合。为何有了数组,还须要集合,由于数组的功能单一,长度不可变,而有些集合实现类则是对数组操做的封装。java
Collection
集合和数组的区别:数组
graph TD; Collection -->List-有顺序,可重复 List-有顺序,可重复 -->LinkedList-使用链表实现,线程不安全 List-有顺序,可重复 -->ArrayList-数组实现,线程不安全 List-有顺序,可重复 -->Vector-数组实现,线程安全 Vector-数组实现,线程安全 -->Stack-堆栈,先进后出 Collection-->Set-不可重复,内部排序 Set-不可重复,内部排序-->HashSet-hash表存储 HashSet-hash表存储-->LinkHashSet-链表维护插入顺序 Set-不可重复,内部排序-->TreeSet-二叉树实现,排序 Collection-->Queue-队列,先进先出
Collection
继承于Iterable
接口,而Iterable
接口,是集合的顶级接口,没有之一,Iterable
接口定义的功能是能够迭代,也就是获取迭代器iterator
的功能,所以Collection
以及其实现类也间接得到迭代的功能。 安全
为何须要这样子定义呢?我陷入了深深地思考...ide