Java集合类
Java集合类
Java 集合类是 Java 标准库中用于存储和操作数据的重要工具。它们提供了多种数据结构和算法,方便开发者处理各种数据需求。Java 集合类主要分为两大类:Collection 和 Map。以下是详细的说明、定义、使用方法和区别。
1. 集合类概述
Java 集合框架主要包含以下接口和类:
(1)Collection 接口
- List:有序集合,允许重复元素。
 - Set:无序集合,不允许重复元素。
 - Queue:队列,支持先进先出(FIFO)或优先级排序。
 
(2)Map 接口
- Map:键值对集合,键不允许重复。
 
2. 常用集合类
(1)List 接口的实现类
ArrayList:
- 特点:基于动态数组实现,支持随机访问,插入和删除效率较低。
 - 定义:
1
List<String> list = new ArrayList<>(); - 常用方法:
1
2
3list.add("A"); // 添加元素
list.get(0); // 获取元素
list.remove(0);// 删除元素 
LinkedList:
- 特点:基于双向链表实现,插入和删除效率高,随机访问效率低。
 - 定义:
1
List<String> list = new LinkedList<>(); - 常用方法:
1
2
3list.add("A"); // 添加元素
list.get(0); // 获取元素
list.remove(0);// 删除元素 
Vector:
- 特点:线程安全的动态数组,性能较低。
 - 定义:
1
List<String> list = new Vector<>(); 
(2)Set 接口的实现类
HashSet:
- 特点:基于哈希表实现,无序,不允许重复元素。
 - 定义:
1
Set<String> set = new HashSet<>(); - 常用方法:
1
2
3set.add("A"); // 添加元素
set.contains("A"); // 判断是否包含元素
set.remove("A"); // 删除元素 
TreeSet:
- 特点:基于红黑树实现,元素有序(自然排序或自定义排序)。
 - 定义:
1
Set<String> set = new TreeSet<>(); 
LinkedHashSet:
- 特点:基于哈希表和链表实现,保持插入顺序。
 - 定义:
1
Set<String> set = new LinkedHashSet<>(); 
(3)Queue 接口的实现类
LinkedList:
- 特点:可以作为队列使用。
 - 定义:
1
Queue<String> queue = new LinkedList<>(); - 常用方法:
1
2
3queue.offer("A"); // 添加元素
queue.poll(); // 移除并返回队头元素
queue.peek(); // 返回队头元素 
PriorityQueue:
- 特点:基于优先级堆实现,元素按优先级排序。
 - 定义:
1
Queue<String> queue = new PriorityQueue<>(); 
(4)Map 接口的实现类
HashMap:
- 特点:基于哈希表实现,键值对无序,允许 
null键和null值。 - 定义:
1
Map<String, Integer> map = new HashMap<>(); - 常用方法:
1
2
3map.put("A", 1); // 添加键值对
map.get("A"); // 获取值
map.remove("A"); // 删除键值对 
- 特点:基于哈希表实现,键值对无序,允许 
 TreeMap:
- 特点:基于红黑树实现,键值对有序(自然排序或自定义排序)。
 - 定义:
1
Map<String, Integer> map = new TreeMap<>(); 
LinkedHashMap:
- 特点:基于哈希表和链表实现,保持插入顺序。
 - 定义:
1
Map<String, Integer> map = new LinkedHashMap<>(); 
3. 集合类的区别
| 集合类 | 特点 | 适用场景 | 
|---|---|---|
| ArrayList | 动态数组,随机访问快,插入删除慢 | 需要频繁访问元素的场景 | 
| LinkedList | 双向链表,插入删除快,随机访问慢 | 需要频繁插入删除的场景 | 
| HashSet | 无序,不允许重复元素 | 需要去重的场景 | 
| TreeSet | 有序,不允许重复元素 | 需要排序的场景 | 
| HashMap | 键值对无序,允许 null 键和值 | 
需要快速查找键值对的场景 | 
| TreeMap | 键值对有序 | 需要排序键值对的场景 | 
| PriorityQueue | 优先级队列,元素按优先级排序 | 需要按优先级处理元素的场景 | 
4. 集合类的选择
- 需要有序且允许重复:使用 
ArrayList或LinkedList。 - 需要去重:使用 
HashSet或TreeSet。 - 需要键值对存储:使用 
HashMap或TreeMap。 - 需要优先级处理:使用 
PriorityQueue。 
5. 示例代码
1  |  | 
通过以上内容,你可以全面了解 Java 集合类的定义、使用方法和区别。如果有更多问题,欢迎随时提问!
蚂蚁🐜再小也是肉🥩!
Java集合类
      http://heibanbai.com.cn/posts/aef82664/
    “您的支持,我的动力!觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
                            微信支付
                            支付宝支付