一:集合的UML类图
二:集合工具的分析 (Java集合是java提供的工具)
常用的数据结构: 集合、链表、队列、栈、数组、映射等
-
java集合主要划分为五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)
根据类图进行分析:主要分为两大类:Collection和Map
Collection
Collection是一个接口,是高度抽象出来的集合,它包含了集合的基本操作和属性。包括了List,Set
List: 通常表示一个列表(数组、队列、链表、栈等),其中的元素可以重复,
常用实现类为ArrayList和LinkedList(LinkedList还是实现了Queue接口),
不常用的Vector(JDK1.0就引入的集合类),因此也可以作为队列使用。
List是一个有序的队列,每一个元素都有它的索引。第一个元素的索引值是0。
Set: Set接口通常表示一个集合,其中的元素不允许重复(通过hashcode和equals函数来确认是否重复),
常用实现类有HashSet和TreeSet,HashSet是通过Map中的HashMap实现的,
而TreeSet是通过Map中的TreeMap实现的,TreeSet还实现了SortedSet接口,
因此是有序的集合(集合中的元素要实现Comparable接口,
并覆写Compartor函数才行)。Set是一个不允许有重复元素的集合。
Map: 是一个映射接口,即key-value键值对。一个key对应一个value。Map是一个映射接口,
其中的每个元素都是一个key-value键值对。
同样抽象类AbstractMap通过适配器模式实现了Map接口中的大部分函数,
reeMapHashMapWeakHashMap等实现类都通过继承AbstractMap来实现,
不常用的HashTable(JDK1.0就引入的集合类)直接实现了Map接口
Iterator: 它是遍历集合的工具,通常通过Iterator迭代器来遍历集合,只用来遍历Collection,不能遍历Map。
Collection的实现类都实现了iterator()函数,它返回一个Iterator对象,用来遍历集合,
ListIterator则专门用来遍历List。
Enumeration: 它是JDK 1.0引入的抽象类。作用和Iterator一样,也是遍历集合,
但它的功能比Iterator要少,它只能再Hashtable、Vector和Stack中使用。
Arrays和Collections。它们是操作数组、集合的两个工具类