• JAVA集合汇总整理


    JAVA集合汇总

    继承结构:

    /*
    // Collection集合类
    Collection<<interface>>
              |__ List<<interface>>
              |       |__ ArrayList<<class>>
              |       |__ LinkedList<<class>>
              |       |__ Vector<<class>>
              |__ Set<<interface>>
              |      |__ HashSet<<class>>
              |      |__ LinkedHashSet<<class>>
              |      |__ SortedSet<<interface>>
              |                  |__* TreeSet<<class>>
              |__ Queue<<interface>>
    // Map集合类
    Map<<interface>>
       |__ HashMap<<class>>
       |__ LinkedHashMap<<class>>
       |__ Hashtable<<class>>
       |__ SortedMap<<interface>>
                   |__* TreeMap<<class>>
    */
    
    1. List

      ArrayList:基于数组,线程不安全;初始容量为10,加载因子为1,扩容量为:0.5 * 当前容量;

      LinkedList:基于链表,线程不安全;链表结构无容量限制;

      Vector:基于数组,线程安全;初始容量为10,加载因子为1,扩容量为:1 * 当前容量;

      • ArrayListLinkedList的区别

        ArrayList:底层基于数组实现,增删慢,查询快;

        LinkedList:底层基于链表实现,增删快,查询慢;

      • 自定义排序

        方法1:集合元素通过实现Comparable接口中的CompareTo方法进行排序;

        方法2:通过实现Comparator接口的compare方法,使用CollectionsListsort方法进行排序;

    2. Set

      Set集合的元素均不可重复;

      HashSet:基于哈希表,无序集合;

      LinkedHashSet:基于哈希表和链表,有序集合;

      TreeSet:基于红黑树(平衡二叉查找树),有序集合,元素不可为null;树结构无容量限制;

      • HashSetLinkedHashSet初始容量均为16,加载因子为0.75,扩容量为:1 * 当前容量;

      • LinkedHashSet默认按照插入顺序排序,不支持自定义排序;

      • TreeSet,如果元素是基本数据类型或其包装类型,则默认按升序排序;如果是元素是复杂对象类型,则需要元素实现Comparable接口中的CompareTo方法;

      • 以上三个Set都是线程不安全的

    3. Map

      Map集合的的Key均不可重复;

      HashMap:基于哈希表,线程不安全,无序集合,元素的Key、Value均可以为null;

      LinkedHashMap:基于链表和哈希表,线程不安全,有序结合,元素的Key、Value均可以为null;

      Hashtable:基于哈希表,线程安全,无序集合,元素的Key、Value均不可为null;

      TreeMap:基于红黑树(平衡二叉查找树),有序集合,元素的Key不可为null,Value可以为null;

      • HashMapLinkedHashMapHashtable初始容量为16,加载因子为0.75,扩容量为:1 * 当前容量;
      • LinkedHashMap默认按照插入顺序排序,不支持自定义排序;
      • TreeMap,如果元素是基本数据类型或其包装类型,则默认按升序排序;如果是元素是复杂对象类型,则需要元素实现Comparable接口中的CompareTo方法;

    yumomode:博主水平有限,文中若有错误之处,恳请博友指正,感激不尽!!!

  • 相关阅读:
    <C Primer Plus>4 Pointer Operations
    <C Primer Plus>3 Arguments and Pitfalls of Printf()
    <C Primer Plus >2 Altering Variables in the Calling Function
    <C Primer Plus >1 Constants and the C Preprocessor
    《proe 二次开发01》
    poj 2551 Ones
    POJ2309 -- BST
    Log4j基本用法----日志级别
    Log4j基本用法
    Hibernate学习(一)
  • 原文地址:https://www.cnblogs.com/yumomode/p/13902629.html
Copyright © 2020-2023  润新知