在Java中,容器其实就是指集合(注意:不是Spring容器)集合分为两大接口,分别是Collection和Map接口
Collection接口:
如图,其中Collection接口并不是顶级接口,它是Iterable的一个子接口,Iterable表示可迭代,So,Collection接口下的所有实现类都可以使用Iterable迭代。
Collection接口下有三个子接口
Queue
Queue表示队列,其子接口Deque表示双向队列,Deque的具体实现,ArratDeque是一个使用数组实现的双向队列
List
Collection的List子接口有三个具体实现,分别是LinkedList、Vector和ArrayList
LinedList
其中LinkedList,底层使用双向非循环链表实现适用于add和delete操作远大于select的场景
ArrayList
ArrayList底层是使用数组进行实现,相对来说遍历效率较高
Vector
他和ArrayList底层很相似,主要区别在于Vector底层使用了Synchronized关键字以保证线程安全,一般在不考虑线程安全的情况下很少使用。Vector有一个子类Stack,表示数据结构中的栈,当我们需要使用数据结构中的栈时,可以考虑这个子类
Set
Set的具体实现有HashSet、TreeSet,还有一个子接口SortedSet,整个Set的实现几乎基于Map的实现进行完成(在下一次更新中会讲到Map的实现)
HashSet
其中HashSet是基于HashMap实现的,LinedHashSet是基于LinedHashMap进行实现的
TreeSet
TreeSet既实现了Set接口,又实现了NavigableSet接口,而NavigableSet的上层接口,也就是NavigableSet实现的接口,是SortedSet