一、简介
Collection:
Collection表示一组对象,它是集中,收集的意思,就是把一些数据收集起来。Collection函数库是在java.util包下的一下接口和类,类是用来产生对象存放数据用的,而接口是访问数据的方式。
Collection函数库与数组的两点不同:
1、数组的容量是有限制的,而Collection库没有限制,它的容量可以自动的调节大小。
2、Collection函数库只能用来存放对象,而数据没有这样的约束。
Collection接口是Collection层次结构中的根接口,它定义一一些最基本的访问方法,让我们能用同一的方式通过它以及子接口来访问数据。存放在Collection库中的数据,被称为元素(element)。
Map:
1、Map系列好比Collection的娇妻,虽然没有直接的继承和实现等关系,但它又似乎是Collection大家族中不可或缺的一员
2、Map对象中,每一个关键字最多有一个关联的值。
3、不能包括两个相同的键,一个键最多能绑定一个值。null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。
4、当get()方法返回null值时,即可以表示Map中没有该键,也可以表示该键所对应的值为null。因此,在Map中不能由get()方法来判断Map中是否存在某个键,而应该用containsKey()方法来判断。
4、Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。
二、关系图
三、说明
1、Iterator,所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口。
2、Map集合:是一种键和值的映射关系(双列集合) ,Collection集合:单列集合,只能存储一种类型的元素,
间接关系:HashSet依赖于Map接口的子实现类HashMap的,TreeSet依赖于Map接口的子实现类TreeMap的。
HashSet源码中就有:
public HashSet() { map = new HashMap<>(); }
TreeSet源码中就有:
public TreeSet() { this(new TreeMap<E,Object>()); } 3、Comparable和Comparator都是用来实现集合中元素的比较、排序的。 Comparable是在集合内部定义的方法实现的排序,一般我们的实体类实现java.lang.comparable接口,重写compareTo方法。 Comparator是在集合外部实现的排序,一般在业务排序类中实现java.util.comparator接口,重写compare方法。