继承关系

image.png
image.png

List

List 是有序的 Collection

  • ArrayList(数组)
  • Vector( 数组实现、 线程安全)
  • LinkList(链表)

    Set

    存储无序(存入和取出的顺序不一定相同)元素, 值不能重复
    对象的相等性本质是对象 hashCode 值(java 是依据对象的内存地址计算出的此序号) 判断的, 如果想要让两个不同的对象视为相等的,就必须覆盖 Object 的 hashCode 方法和 equals 方法

  • HashSet( Hash 表)

    HashSet 首先判断两个元素的哈希值,如果哈希值一样,接着会比较equals 方法 如果 equls 结果为 true , HashSet 就视为同一个元素。如果 equals 为 false 就不是同一个元素

  • TreeSet(二叉树)

    1. TreeSet()是使用二叉树的原理对新 add()的对象按照指定的顺序排序(升序、降序),每增加一个对象都会进行排序,将对象插入的二叉树指定的位置。
      2. Integer 和 String 对象都可以进行默认的 TreeSet 排序,而自定义类的对象是不可以的, 自己定义的类必须实现 Comparable 接口,并且覆写相应的 compareTo()函数,才可以正常使用
  • LinkHashSet( HashSet+LinkedHashMap)

    Map

  • HashMap(数组+链表+红黑树)

    JAVA8 实现 数组+链表+红黑树 当链表中的元素超过了 8 个以后,会将链表转换为红黑树

  • ConcurrentHashMap

  • HashTable(线程安全)
  • TreeMap(可排序)
  • LinkHashMap(记录插入顺序)