1、java集合类关系图
上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。
Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合:
2、Collection接口与Iteratble接口
Collection接口继承了Iteratble接口,而后者体现了设计模式中的的迭代器模式,通过iterator()方法返回一个遍历集合的Iterator对象。Collection接口中定义了集合的基本操作方法。
3、Set接口、List接口和ListIterator接口
Set接口是java集合类中的不可重复的集合类容器的基本接口,继承自Collection接口,
Set
集合实现中不允许包含相同的元素
,如果试把两个相同的元素加入同一个
Set
集合中,则添加操作失败。
Set
判断两个对象是否相同不是使用
==
运算符,而是
根据
equals
方法。
List是java集合类中的有序可重复的列表类容器的基本接口,同样继承自Collection接口,添加了许多与
操作顺序列表相关的方法,如E get(int index)、 E set(int index, E element);分别获取列表中下标为
index的元素以及设置元素;List<E> subList(int fromIndex, int toIndex)方法用于形成一个列表的子视图。遍历列表,还可以通过 调用ListIterator<E> listIterator()方法,获取一个专门为遍历列表而设计的 ListIterator。
4、Map接口
Map
用于保存具有映射关系的数据,因此
Map
集合里保存着两组值,一组值用于保存
Map
里的
Key
,另外一组用于保存
Map
里的
Value,
Map
中的
key
和
value
都可以是任何引用类型的数据。
Map
中的
Key
不允许重复
,即同一个
Map
对象的任何两个
Key
通过
equals
方法比较中返回
false。
Key
和
Value
之间存在单向一对一关系,即通过指定的
Key
总能找到唯一的,确定的
Value
。
Map接口内部定义了Entry接口,用于具体实现中key/value对的存储。