亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 集合框架完全指南:接口、实现、算法与最佳实践

Java Collections Framework(JCF)是统一的数据结构架构,提供接口、实现、算法三大支柱,位于 java.util 包。取代早期零散类,实现高性能、高互操作、易扩展。

核心接口体系

Collection (根接口)
├── List          // 有序、可重复
│   ├── ArrayList
│   ├── LinkedList
│   └── Vector (遗留)
├── Set           // 无序、唯一
│   ├── HashSet
│   ├── LinkedHashSet (插入序)
│   └── TreeSet (有序)
└── Queue         // 队列
    ├── PriorityQueue
    ├── ArrayDeque
    └── LinkedList

Map (键值映射,非 Collection 子接口)
├── HashMap
├── LinkedHashMap (插入序)
├── TreeMap (键有序)
├── WeakHashMap (弱键)
├── IdentityHashMap (恒等比较)
└── Hashtable (遗留)

主要实现类特性对比

实现底层结构有序性线程安全Null键值典型场景
ArrayList动态数组插入序❌允许随机访问多、尾部增删
LinkedList双向链表插入序❌允许头尾频繁增删、队列/栈
HashSetHashMap无序❌允许1个null去重、集合运算
LinkedHashSetLinkedHashMap插入序❌允许1个null去重+保持顺序
TreeSet红黑树自然序/定制序❌不允许null排序去重、区间查询
HashMap数组+链表/红黑树无序❌允许1键null、多值null通用键值存储
LinkedHashMap双向链表+哈希插入/访问序❌允许LRU缓存、有序映射
TreeMap红黑树键有序❌键不允许null排序映射、NavigableMap
ConcurrentHashMapCAS+同步块无序✅ 高并发不允许null高并发读写

核心算法

Collections 工具类提供静态算法(多态:同一方法适配多实现):

Iterator 与 ListIterator


// 通用遍历
for (Iterator it = list.iterator(); it.hasNext(); ) {
    String s = it.next();
    if (s.isEmpty()) it.remove(); // 安全删除
}

// List 专用:双向、可修改、可定位
ListIterator lit = list.listIterator();
while (lit.hasNext()) lit.next();
while (lit.hasPrevious()) System.out.println(lit.previous());

Comparator 与 Comparable

接口位置方法用途
Comparable实体类内部compareTo(T o)自然排序(单一维度)
Comparator外部独立compare(T o1, T o2)多种排序策略、不可修改类

// Lambda 简写 Comparator
list.sort(Comparator.comparing(User::getAge).thenComparing(User::getName));

并发安全集合

性能选型速查

  1. 默认 List:ArrayList
  2. 队列/栈/双端:ArrayDeque
  3. 去重/成员测试:HashSet
  4. 去重+顺序:LinkedHashSet
  5. 排序去重:TreeSet
  6. 键值存储:HashMap
  7. 键值+顺序:LinkedHashMap
  8. 键值+排序:TreeMap
  9. 高并发 Map:ConcurrentHashMap
  10. 线程安全 List:CopyOnWriteArrayList(读多写少)

避坑指南

java

  1. C# 集合实战教程:ArrayList、Stack、Queue、Hashtable 等核心类型全解析
  2. 精通 Java 运算符:类型、语法与实战示例
  3. Java 注释:类型、用法与最佳实践
  4. 精通 Java 增强 for 循环:语法、示例与最佳实践
  5. 精通 Java 字符串:创建、方法与最佳实践
  6. 精通 Java 接口:概念、实现与最佳实践
  7. 精通 Java 匿名内部类:定义、语法与实战示例
  8. 精通 Java Try-With-Resources:自动资源管理详解
  9. Java 注解详解:类型、放置位置与实战示例
  10. Java 断言实战指南:尽早发现 Bug 与保障代码可靠性
  11. Java 集合框架完全指南:接口、实现、算法与最佳实践
  12. Java 10 垃圾收集器接口与 G1 并行 Full GC