zoukankan      html  css  js  c++  java
  • 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:博主水平有限,文中若有错误之处,恳请博友指正,感激不尽!!!

  • 相关阅读:
    前端开发Code Review内容【vue记录】
    Blue Jeans
    Arbitrage
    Common Subsequence
    Palindrome
    Stockbroker Grapevine
    Asteroids
    Frogger
    All in All
    Highways
  • 原文地址:https://www.cnblogs.com/yumomode/p/13902629.html
Copyright © 2011-2022 走看看