继承关系
List
List 是有序的 Collection
- ArrayList(数组)
- Vector( 数组实现、 线程安全)
-
Set
存储无序(存入和取出的顺序不一定相同)元素, 值不能重复
对象的相等性本质是对象 hashCode 值(java 是依据对象的内存地址计算出的此序号) 判断的, 如果想要让两个不同的对象视为相等的,就必须覆盖 Object 的 hashCode 方法和 equals 方法 HashSet( Hash 表)
HashSet 首先判断两个元素的哈希值,如果哈希值一样,接着会比较equals 方法 如果 equls 结果为 true , HashSet 就视为同一个元素。如果 equals 为 false 就不是同一个元素
TreeSet(二叉树)
- TreeSet()是使用二叉树的原理对新 add()的对象按照指定的顺序排序(升序、降序),每增加一个对象都会进行排序,将对象插入的二叉树指定的位置。
2. Integer 和 String 对象都可以进行默认的 TreeSet 排序,而自定义类的对象是不可以的, 自己定义的类必须实现 Comparable 接口,并且覆写相应的 compareTo()函数,才可以正常使用
- TreeSet()是使用二叉树的原理对新 add()的对象按照指定的顺序排序(升序、降序),每增加一个对象都会进行排序,将对象插入的二叉树指定的位置。
LinkHashSet( HashSet+LinkedHashMap)
Map
HashMap(数组+链表+红黑树)
JAVA8 实现 数组+链表+红黑树 当链表中的元素超过了 8 个以后,会将链表转换为红黑树
ConcurrentHashMap
- HashTable(线程安全)
- TreeMap(可排序)
- LinkHashMap(记录插入顺序)