集合框架体系
集合是Java中提供的一种容器,可以用来存储多个数据;
而由于存储的方式不同,就形成了很多不同的体系结构,统称为集合框架体系。
List |
ArrayList |
1、排序有序,可重复 2、底层使用数组 3、查询快,增删慢 4、线程不安全 5、当容量不够时—>当前容量*1.5 + 1 |
LinkedList |
1、排列有序,可重复 2、底层使用链表 3、查询慢,增删快 4、线程不安全 |
|
Vector |
1、排序有序,可重复 2、底层使用数组 3、查询快,增删慢 4、线程安全 5、当容量不够时—>默认扩容一倍 |
|
Set |
HashSet |
1、排列无序,不可重复 2、底层使用Hash表 3、存取速度快 4、内部是HashMap |
TreeSet |
1、排序无序,不可重复 2、底层使用二叉树 3、内部是TreeMap的SortedSet |
|
LinkedHashSet |
1、用Hash表存储,并用双向链表记录插入顺序 2、内部是LinkedHashMap |
一般,线程不安全,效率会高,反之亦然。
Map |
HashMap |
1、键不可重复,值可重复 2、底层: 在JDK1.7中,由”数组+链表“组成 在JDK1.8中,有“数组+链表+红黑树”组成 3、线程不安全 4、key的值可以为null,value也可为null |
HashTable |
1、键不可重复,值可重复 2、底层是哈希表 3、线程安全 4、key、value都不能为null |
|
TreeMap |
1、键不可重复,值可重复 底层是二叉树 |
小结:
List、Set、Map选用
在存储元素时,是否需要给元素起名呢
{ 需要:用Map
{ 不需要:List、Set
{ 存储的元素需要考虑先后添加的顺序吗
{ 需要:用List
{ 不需要:用Set
如果需要保证集合元素不重复,也选用Set
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/117928.html