JAVA基础复习之集合

各种LIST和SET

凡是List 都有序可以重复 Set都无序不可以重复

Arraylist,LinkedList 常用

HashSet 和哈希表有关,一般不同的东西哈希值不同, 但是也存在两个字符串哈希值相同的情况,称为哈希冲突,HashSet把哈希值一样的用链表弄成一串存在一起,JDK1.8加入了红黑树,因为连成一串太长了查找速度也会慢
JAVA基础复习之集合当HashSet里存储自定义数据类型时候要记得重写hashCode和equals方法,才能保证数据不重复
比HashSet更进一步的是LinkedHashSet,多了个链表记录顺序,使其存取有序。下一篇详解一下源码

Comparable:强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的compareTo方法被称为它的自然比较方法。只能在类中实现compareTo()一次,不能经常修改类的代码实现自己想要的排序。实现此接口的对象列表(和数组)可以通过Collections.sort(和Arrays.sort)进行自动排序,对象可以用作有序映射中的键或有序集合中的元素,无需指定比较器。
Comparator:强行对某个对象进行整体排序。可以将Comparator 传递给sort方法(如Collections.sort或 Arrays.sort),从而允许在排序顺序上实现精确控制。还可以使用Comparator来控制某些数据结构(如有序set或有序映射)的顺序,或者为那些没有自然顺序的对象collection提供排序。

Map 就是键值对

循环的话,keyset方法可以把所有的键都放到一个set里返回,或者用entry返回,entry相当于一对键值对的相互联系

HashMap要存储自定义数据类型跟HashSet一样要重写equals和hashcode方法,和哈希有关的都这样

LinkedHashmap有序 下一篇一起读源码

——————————————————————————————————————————————

这篇重点是JDK1.8以后对HashSet和HashMap的红黑树改进,面试会问吧