Java集合知识总结

    科技2022-07-16  111

    1.特点:     Collection:(单列集合)         List:(有序,元素不唯一)             ArrayList:                 1.线程不安全,效率高                 2.底层实现可变数组,查询快,增删慢             Vector:                 1.线程安全,效率低                 2.底层实现可变数组,查询快,增删慢             LinkedList:                 1.线程不安全,效率高                 2.底层实现是链表,查询慢,增删快         Set:(元素唯一)             HashSet:(无序)                 1.底层实现是哈希表,判断依赖hashCode方法和equals方法,执行顺序:                     判断hashCode()是否相同                         是:判断equals()是否为true                             是true:说明元素重复,不进行添加                             否false:添加元素到集合                         否:添加元素到集合             LinkedHashSet:(有序)                 1.底层实现是链表和哈希表,链表保证有序,哈希表保证唯一             TreeSet:(可自行排序,默认按照自然排序)                 1.底层实现是红黑树                 2.判定元素相同的标准是所存元素的compareTo返回是否为0                 3.排序两种方式:                     a.自然排序(存储元素实现Comparable接口)                     b.比较器排序(初始化时候接收一个Comparator接口的实现类的实例)         Map:(双列集合)         A:Map集合的数据结构仅仅针对键有效,与值无关。         B:存储的是键值对形式的元素,键唯一,值可重复。         HashMap:             1.底层实现是哈希表,判断依赖hashCode方法和equals方法,执行顺序:                     判断hashCode()是否相同                         是:判断equals()是否为true                             是true:说明元素重复,不进行添加                             否false:添加元素到集合                         否:添加元素到集合         LinkedHashMap:             1.底层实现是链表和哈希表,链表保证有序,哈希表保证唯一         Hashtable:             1.底层实现是哈希表,判断依赖hashCode方法和equals方法,执行顺序:                     判断hashCode()是否相同                         是:判断equals()是否为true                             是true:说明元素重复,不进行添加                             否false:添加元素到集合                         否:添加元素到集合         TreeMap:             1.底层实现是红黑树                 2.判定元素相同的标准是所存元素的compareTo返回是否为0                 3.排序两种方式:                     a.自然排序(存储元素实现Comparable接口)                     b.比较器排序(初始化时候接收一个Comparator接口的实现类的实例)    

    2.选择:     看需求:是否是键值对类型的数据:         是:Map:             键是否需要排序:                 是:TreeMap                 否:HashMap                 不清楚的使用HashMap         否:Collection:             元素是否唯一:                 是:Set                     元素是否需要排序:                         是:TreeSet                         否:HashSet                     不清的使用HashSet                 否:List                     是否需要线程安全;                         是:Vector                         否:ArrayList或者LinkedList                             增删多:LinkedList                             查询多:ArrayList                         不清楚就使用ArrayList

    3.使用:     Collection:         常用方法:             add()                         remove()             contains()             iterator()             size()             clear()         遍历:             1.增强for(forEach)             2.迭代器         子类:             List:                 常用方法:                     get()                 遍历:                     普通for循环             Set:     Map:         常用方法:             put()             remove()             containsKey(),containsValue()             keySet()             get()             values()             entrySet()             size()         遍历:             1.根据键找值             2.根据键值对对象查找相应的键和值

     

    Processed: 0.010, SQL: 8