我们来简单解读下上面这个框架图:
所有集合类都位于java.util包下
Iterator是遍历集合的工具,我们经常通过Iterator迭代器来遍历集合。我们说Collection依赖于Iterator,是因为Collection的实现类都要实现iterator()函数,返回一个Iterator对象。ListIterator主要作用就是遍历List。
Java的集合类主要由两个接口派生而出:Collection和Map,作为Java集合框架的根接口,这两个接口包含了一些子接口和实现类。
集合接口:即图中的 LinkIterator、List、Set、Queue、SortedMap、SortedMap 6个接口(即短虚线框部分),表示不同集合类型,是集合框架的基础。
抽象类:即图中的 AbstractCollection、AbstractList、AbstractSet、AbstractMap、AbstractSequentialList 5个抽象类(长虚线框部分),抽象类只是对集合接口的部分实现,有需要的话可以继续扩展,完善自定义集合类。
实现类:即图片中LinkHashMap、TreeMap等8个实现类(实线框部分),主要是对接口的具体实现。
Collection 接口包含一组允许重复的对象
Set 接口继承 Collection,但是集合内的元素不重复。Set的实现类有HastSet和TreeSet。HashSet依赖于HashMap,它实际上是通过HashMap实现的;TreeSet依赖于TreeMap,它实际上是通过TreeMap实现的。
List 接口继承 Collection,集合内元素允许重复,但维护了元素的插入顺序,所以是个有序队列。每一个元素都有它的索引。第一个元素的索引值是0。List的实现类有LinkedList, ArrayList, Vector, Stack。
Map接口是键-值对象顶层接口,下面还包含了一些子接口和实现类。AbstractMap是个抽象类,它实现了Map接口中的大部分API。而HashMap,TreeMap,WeakHashMap都是继承于AbstractMap。Hashtable虽然继承于Dictionary,但它实现了Map接口。
Set、List和Map是集合的三大类:
List:有序集合,集合中元素可重复,访问元素可以根据元素索引访问。
Set:无序集合,集合中元素不可以重复,访问集合中的元素只能根据元素自身信息来访问(因此元素不允许重复)。
Map:Key-value模式的键值对元素,访问时根据元素key来读取对应的value。
Arrays和Collections是操作数组、集合的两个工具类。
标签:Map,元素,List,Collection,接口,集合 From: https://www.cnblogs.com/N1cholas210162702016/p/18344559