Java中集合主要分为两类:单列集合和双列集合。
单列集合
单列集合主要指的是存储单个元素的集合,每一个元素都是独立的。
常见的单列集合:
- List:有序可重复集合
 
- 
- ArrayList:基于动态数组实现的,查询快,增删慢
 - LinkedList:基于双线链表实现,增删快,查询慢
 
 
- Set:无序且不可重复集合
 
- 
- 
HashSet:基于哈希表实现,元素无序
 - 
TreeSet:基于红黑树实现,元素按照自然顺序或者自动逸顺序排序
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
System.out.println(list); // 输出: [Java, Python]Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(1); // 重复元素不会被添加
System.out.println(set); // 输出: [1, 2] 
 - 
 
双列集合
双列集合主要指的是存储键值对的集合,每个元素都是由键和值组成
常见的单列集合:
- Map:键值对的集合,键不可重复
 
- 
- 
HashMap:集合哈希表实现,键不可重复
 - 
TreeMap:基于红黑树实现,键值对按照键的自然顺序或者自定义顺序排序
 - 
CurrentHashMap:线程安全的哈希表
Map<String, Integer> map = new HashMap<>();
map.put("Java", 1);
map.put("Python", 2);
System.out.println(map); // 输出: {Java=1, Python=2}Map<String, String> linkedMap = new LinkedHashMap<>();
linkedMap.put("A", "Apple");
linkedMap.put("B", "Banana");
System.out.println(linkedMap); // 输出: {A=Apple, B=Banana} 
 - 
 
单列集合和双列集合的区别
|-----------|----------------------------------------------|-------------------------------------|
| 特性        | 单列集合                                         | 双列集合                                |
| 存储方式  | 存储单个元素                                       | 存储键值对(Key-Value)                    |
| 典型接口  | Collection(如 List、Set)                 | Map                               |
| 元素关系  | 元素之间独立                                       | 元素之间通过键值对关联                         |
| 常见实现类 | ArrayList、LinkedList、HashSet、TreeSet | HashMap、LinkedHashMap、TreeMap |
| 适用场景  | 存储一组独立的数据                                    | 存储具有映射关系的数据                         |