Java中的集合框架(Collection Framework)是Java标准库的一部分,它提供了一组接口和实现这些接口的类,用于存储和操作一组对象。集合框架的设计使得开发者可以高效地管理和操作数据集合。
Java集合框架的主要组成部分:
-
集合接口(Collection Interface):
Collection<E>
:这是所有集合类的根接口,它定义了集合的基本行为。Set<E>
:这是一个不包含重复元素的集合,继承自Collection
。List<E>
:这是一个有序的集合,可以包含重复元素,同样继承自Collection
。Queue<E>
:这是一个主要用于插入和移除元素的集合,通常遵循先进先出的原则。
-
映射接口(Map Interface):
Map<K, V>
:这是一个键值对的集合,其中键不能重复。
常见的集合实现类:
-
Set实现:
HashSet<E>
:基于哈希表的实现,提供快速的添加、删除和查找操作。TreeSet<E>
:基于红黑树的实现,元素会被排序,支持快速的查找操作。LinkedHashSet<E>
:结合了HashSet
的高速度和元素的插入顺序保持。
-
List实现:
ArrayList<E>
:基于动态数组的实现,提供了随机访问元素的功能。LinkedList<E>
:基于双向链表的实现,适合频繁的插入和删除操作。Vector<E>
:与ArrayList
类似,但线程安全。Stack<E>
:继承自Vector
,实现了后进先出(LIFO)的数据结构。
-
Queue实现:
LinkedList<E>
:虽然它是一个List
实现,但也可以作为队列使用。PriorityQueue<E>
:基于优先级堆的实现,总是返回最小(或最大)的元素。
-
Map实现:
HashMap<K, V>
:基于哈希表的实现,提供快速的键值对存取。TreeMap<K, V>
:基于红黑树的实现,键会被排序。LinkedHashMap<K, V>
:结合了HashMap
的性能和键的插入顺序保持。Hashtable<K, V>
:一个线程安全的Map
实现。ConcurrentHashMap<K, V>
:线程安全的Map
实现,性能优于Hashtable
。
示例代码:
1import java.util.ArrayList;
2import java.util.HashMap;
3import java.util.HashSet;
4
5public class CollectionExample {
6 public static void main(String[] args) {
7 // 使用 ArrayList 存储一些整数
8 ArrayList<Integer> numbers = new ArrayList<>();
9 numbers.add(1);
10 numbers.add(2);
11 numbers.add(3);
12 System.out.println("Numbers: " + numbers);
13
14 // 使用 HashSet 存储一些字符串
15 HashSet<String> names = new HashSet<>();
16 names.add("Alice");
17 names.add("Bob");
18 names.add("Charlie");
19 System.out.println("Names: " + names);
20
21 // 使用 HashMap 存储一些键值对
22 HashMap<String, Integer> map = new HashMap<>();
23 map.put("One", 1);
24 map.put("Two", 2);
25 map.put("Three", 3);
26 System.out.println("Map: " + map);
27 }
28}
以上就是Java集合框架的一些基本概念和示例。你可以根据具体的需求选择合适的集合类型来使用。