java集合框架及其特点(List、Set、Queue、Map)

简介: java集合框架及其特点(List、Set、Queue、Map)

常见的集合以及他们的特点有哪些呢

java集合类主要由Collection和Map两个根接口派生出来的。

Collection派生了List,Set,Queue这三个子接口。

1、List代表有序可重复集合,可直接根据元素的索引来访问。
ArrayList:
  • 排列有序,可重复
  • 底层使用数组
  • 速度快,增删慢
  • 线程不安全
  • 容量不够时,ArrayList是当前容量*1.5+1
Vector:
  • 排列有序,可重复
  • 底层使用数组
  • 速度快,增删慢
  • 线程安全,效率低
  • 当容量不足时,Vector默认扩展一倍容量
LinkedList:
  • 排列有序,可重复
  • 底层使用双向循环链表数据结构
  • 查询速度慢,增删快,add()和remove()方法快
  • 线程不安全
2、Set代表无序不可重复集合,只能根据元素本身来访问。
HashSet:
  • 排列无序,不可重复
  • 底层使用Hash表实现
  • 存取速度快
  • 内部是HashMap
TreeSet:
  • 排列无序,不可重复
  • 底层使用二叉树实现
  • 排序存储
  • 内部是TreeMap的SortedSet
LinkedHashSet:
  • 采用hash表存储,并用双向链表记录插入顺序
  • 内部是LinkedHashMap
3、Queue是队列集合。

在两端出入的List,可以用数组或链表实现

4、Map代表的是存储key-value对的集合,可根据元素的key来访问value。
HashMap:
  • 键不可重复,值可重复
  • 底层哈希表
  • 线程不安全
  • 允许key值为null,value也可以为null
HashTable:
  • 键不可重复,值可重复
  • 底层哈希表
  • 线程安全
  • key、value都不允许为null
TreeMap:
  • 键不可重复,值可重复
  • 底层二叉树

线程安全的有Vector、HashTable。它们都使用 synchronized 关键字来实现线程安全。

相关文章
|
人工智能 Java
Java 中数组Array和列表List的转换
本文介绍了数组与列表之间的相互转换方法,主要包括三部分:1)使用`Collections.addAll()`方法将数组转为列表,适用于引用类型,效率较高;2)通过`new ArrayList<>()`构造器结合`Arrays.asList()`实现类似功能;3)利用JDK8的`Stream`流式计算,支持基本数据类型数组的转换。此外,还详细讲解了列表转数组的方法,如借助`Stream`实现不同类型数组间的转换,并附带代码示例与执行结果,帮助读者深入理解两种数据结构的互转技巧。
1211 1
Java 中数组Array和列表List的转换
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
372 18
你对Collection中Set、List、Map理解?
|
Java 程序员 编译器
Java|如何正确地在遍历 List 时删除元素
从源码分析如何正确地在遍历 List 时删除元素。为什么有的写法会导致异常,而另一些不会。
652 3
|
Java 程序员
Java|List.subList 踩坑小记
不应该仅凭印象和猜测,就开始使用一个方法,至少花一分钟认真读完它的官方注释文档。
565 1
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
2373 1
|
运维 关系型数据库 Java
PolarDB产品使用问题之使用List或Range分区表时,Java代码是否需要进行改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
711 1
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
450 3
|
Java API
使用 Java 来实现两个 List 的差集操作
使用 Java 来实现两个 List 的差集操作
1945 3
|
存储 Java 索引
Java List接口实现原理与性能评估
Java List接口实现原理与性能评估