集合的复习

先来放一张集合体系的框架图:

 其中Iterator 是集合专用的迭代器:

迭代器:用来遍历容器中的元素的工具。

Collection是所有单列集合的超类(接口);

单列集合:就是集合中一个空间存储一个元素。

我们常用Collection的子类为Set 和List。

List集合我们常用ArrayList子类和LinkedList子类来创建对象。

那么ArrayList和LinkedList的主要区别呢?

ArrayList的底层是数组,而LinkedList的底层是链表。

数组有索引,相对来说查询速度快一点,但是数组的连续结构,使得数组的增删速度没有链表快,所以ArrayList集合主要用于数据的查询,LinkedList主要用于数据的增删。

扫描二维码关注公众号,回复: 5900230 查看本文章

Set集合我们常用HashSet子类和TreeSet子类来创建对象。

那么List集合和Set集合的主要区别是什么呢?

就是List集合里存储规则是有序可重复的

而Set集合的存储规则是无序不重复。

简单描述一下:

有序是指:插入与存储顺序相同

而无序是指:集合会实现Comparable接口来对插入的元素进行排序,插入顺序与存储顺序不相同。

可重复:是指集合中存储的元素可以重复

不可重复:集合中存储的元素不可重复,那么不可重复它的实现原理呢?

Set集合  从存储元素,先根据哈希值判断该位置有无元素,在调用equals方法来判断是否重复,从而决定是否插入元素。对于基本类型的数据,是底层已经重写了hashCode方法和equals方法 ,而对于我们自定义的对象,就需要我们自己重写hashCode方法和equals方法。

猜你喜欢

转载自www.cnblogs.com/ywzbky/p/10700499.html