第四章:集合框架
4.1 集合接口
概述
Java集合框架(Java Collections Framework, JCF)提供了一套标准化的接口和类,用于存储和操作数据集合。集合接口是框架的核心,定义了集合的基本行为和操作方式。通过统一的接口设计,开发者可以更灵活地选择适合的集合实现类。
核心接口
Java集合框架中定义了以下核心接口:
Collection接口
所有集合类的根接口,定义了集合的基本操作,如添加、删除、遍历等。
子接口包括:List:有序、可重复的集合。Set:无序、不可重复的集合。Queue:队列,支持先进先出(FIFO)或优先级排序。
Map接口
独立于Collection接口,表示键值对(Key-Value)的映射关系。
特点:- 键(Key)唯一,值(Value)可重复。
- 常用实现类:
HashMap、TreeMap、LinkedHashMap。
Iterable接口
所有集合类通过实现Iterable接口支持增强型for循环(for-each)遍历。
常用方法
以下是Collection和Map接口的常用方法示例:
Collection接口方法
boolean add(E e); // 添加元素
boolean remove(Object o); // 删除元素
int size(); // 返回集合大小
boolean isEmpty(); // 判断集合是否为空
Iterator<E> iterator(); // 返回迭代器
Map接口方法
V put(K key, V value); // 添加键值对
V get(Object key); // 根据键获取值
V remove(Object key); // 删除键值对
Set<K> keySet(); // 返回所有键的集合
接口关系图
classDiagram
Iterable <|-- Collection
Collection <|-- List
Collection <|-- Set
Collection <|-- Queue
Map <|-- SortedMap
选择接口的原则
- 是否需要有序:
- 有序:
List(如ArrayList、LinkedList)。 - 无序:
Set(如HashSet)。
- 有序:
- 是否需要键值对:
- 是:选择
Map接口的实现类。
- 是:选择
- 是否需要线程安全:
- 是:使用
Collections.synchronizedXXX()包装或并发集合类(如ConcurrentHashMap)。
- 是:使用
示例代码
// 使用List接口
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
System.out.println(list); // 输出: [Java, Python]
// 使用Map接口
Map<Integer, String> map = new HashMap<>();
map.put(1, "One");
map.put(2, "Two");
System.out.println(map.get(1)); // 输出: One
总结
集合接口是Java集合框架的基础,通过统一的接口设计实现了数据存储的灵活性和扩展性。理解接口的层次结构和核心方法,是高效使用集合框架的关键。
