首页 > 其他 > 详细

List和set

时间:2020-03-25 14:33:37      阅读:51      评论:0      收藏:0      [点我收藏+]

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:底层数据结构由哈希表和链表组成。

 

List和set

原文:https://www.cnblogs.com/buzheng/p/12564780.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!