zoukankan      html  css  js  c++  java
  • List和set

    1、List插入有序,元素可以重复。Set插入无序,元素不可以重复。

    例如:先有1,1,2,3需要分别使用list跟set容器进行存储。那么list容器将会将以上全部进行存储到容器中,且按加入容器的的顺序进行存放。而set进行存储的时候只会存储1,2,3。且打印出来也不一定会按加入的顺序进行排序。

    2、List集合常用子类

    •   ArrayList:1)、底层数据结构由数组构成。

              2)、线程不安全。

              3)、扩容增量:容器不够装需要自动扩容,每次会按1.5被进行扩容。默认初始化容量为10。适用于查询。如:原来容量为10,一次扩容后为15。

              4)、删除元素时不会自动减少容量,若想对集合容量减少则调⽤trimToSize()。

    •   LinkedList:1)、底层数据结构由数组构成。

               2)、线程不安全。

               3)、适用于对容器数据的增删改。

    •   Vector:1)、底层数据结构由数组构成。

              2)、线程安全。

              3)、扩容增量:容器不够装需要自动扩容,每次会按2倍被进行扩容。默认初始化容量为10。如:原来容量为10,一次扩容后为20。

             4)、因为线程同步,可避免同时写而引起的数据不一致,但是由于同步也会导致访问比ArrayList慢。

      PS:如果想让ArrayList也进行线程同步,那么可以做以下操作。

    //需进行同步的集合
    List<Object> list = new ArrayList();
    List syncList=Collections.synchronizedList(list); 

    3、Set集合常用子类

    • HashSet:1)、底层结构是哈希表(是一个元素为链表的数组)

            2)、加载因子为0.75:即当容器内 元素个数 超过 容量长度的0.75倍 时,进行扩容

            3)、扩容增量:原容量的 1 倍。默认容量为16。如:原来容量为16,一次扩容后为32。

    • TreeSet: 1)、底层数据结构是红⿊树(是⼀个⾃平衡的⼆叉树)

            2)、排序有序。

    • LinkedHashSe:底层数据结构由哈希表和链表组成。
  • 相关阅读:
    东南大学2021年高等代数
    北京师范大学2021年数学分析
    华东师范大学2021年数学分析考研试题参考解答修正版
    中国科学院大学2021年数学分析考研试题参考解答
    [数学考研竞赛00052]浙江大学2021年数学分析考研试题参考解答
    python3.6, cv2.imread()导入图片失败,none
    python商品分类信息
    mongodb 聚合(Map-Reduce)
    mongodb 聚合(aggregate)
    Java-Security(七):Spring Security方法注解认证启用
  • 原文地址:https://www.cnblogs.com/buzheng/p/12564780.html
Copyright © 2011-2022 走看看