一、概述
集合框架是 Java 中用于存储和操作一组对象的标准化架构。它提供了一套接口、实现类和算法,用于高效管理数据集合。
二、核心接口
Collection 接口
定义所有单列集合的通用方法,如添加、删除、遍历等。主要子接口包括:
- List 接口
有序、可重复的集合,支持索引访问。 - Set 接口
无序、不可重复的集合。 - Queue 接口
队列结构,支持先进先出操作。
Map 接口
存储键值对的双列集合,键不可重复。
三、常用实现类
List 实现类
- ArrayList
基于数组实现,支持快速随机访问。List<String> list = new ArrayList<>();
- LinkedList
基于双向链表实现,适用于频繁插入删除。List<Integer> linkedList = new LinkedList<>();
Set 实现类
- HashSet
基于哈希表实现,无序且高效。Set<String> set = new HashSet<>();
- TreeSet
基于红黑树实现,元素按自然顺序排序。
Map 实现类
- HashMap
基于哈希表存储键值对,允许 null 键值。Map<String, Integer> map = new HashMap<>();
- TreeMap
基于红黑树实现,键按自然顺序排序。
四、泛型在集合中的应用
集合通过泛型确保类型安全,避免运行时类型转换错误:
List<Integer> intList = new ArrayList<>(); // 只能存储 Integer
五、集合工具类
Collections 提供静态方法操作集合,如排序、同步化:
Collections.sort(list); // 对 List 排序
六、集合的遍历
统一遍历集合元素的标准方式:
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
简化遍历语法:
for (String s : list) {
System.out.println(s);
}
七、线程安全集合
早期线程安全实现(已逐渐被取代)。
包装普通集合为线程安全版本:
List<String> syncList = Collections.synchronizedList(new ArrayList<>());
ConcurrentHashMap 等高效并发容器。
八、性能比较
- ArrayList vs LinkedList
随机访问:ArrayList 高效;插入删除:LinkedList 高效。 - HashSet vs TreeSet
查找速度:HashSet 更快;排序需求:TreeSet 更优。
九、总结
集合框架通过统一的接口设计降低学习成本,开发者需根据数据特性(有序性、唯一性、线程安全等)选择合适的实现类。




