Z
ZHANK
核心类库

集合框架入门

了解 Collection 体系、List、Set、Map 接口与迭代器

集合框架入门

Java 集合框架是一套设计精良的数据结构库。在学具体类之前,先了解整体架构。

学完本章你将: 了解 Collection 体系、List/Set/Map 三大接口、迭代方式。


为什么需要集合框架

数组功能有限:长度固定、缺少常用操作(搜索、排序)。集合框架提供了动态大小、丰富 API、统一遍历方式的容器。


整体架构

Collection(单列集合)
├── List(有序、可重复)—— ArrayList、LinkedList
├── Set(无序、不重复)—— HashSet、TreeSet
└── Queue(队列)—— LinkedList、PriorityQueue

Map(双列集合,键值对)—— HashMap、TreeMap

Collection 存单个元素,Map 存键值对。 Map 不属于 Collection 体系,是独立的。


List —— 有序可重复

就像排队:有顺序,同一个人可以排多次。

java
List<String> list = new ArrayList<>();
list.add("Alice");
list.add("Bob");
list.add("Alice");   // 可以重复
System.out.println(list.get(0)); // "Alice"(按下标访问)
System.out.println(list);        // [Alice, Bob, Alice]

Set —— 无序不重复

就像印章:不重复,没有序号。

java
Set<String> set = new HashSet<>();
set.add("Java");
set.add("Python");
set.add("Java");     // 重复的,不添加
System.out.println(set.size()); // 2
System.out.println(set);        // 顺序不保证

Map —— 键值对

就像字典:通过 key 查 value,key 不能重复。

java
Map<String, Integer> map = new HashMap<>();
map.put("Alice", 25);
map.put("Bob", 30);
System.out.println(map.get("Alice"));  // 25
System.out.println(map.get("Charlie")); // null(不存在)

// 遍历
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

统一遍历:Iterator 与 forEach

java
List<String> list = List.of("A", "B", "C");

// Iterator(支持边遍历边删除)
Iterator<String> it = list.iterator();
while (it.hasNext()) {
    System.out.println(it.next());
}

// forEach + Lambda(最简洁)
list.forEach(item -> System.out.println(item));