Skip to content
On this page

集合与 Stream

核心接口

CollectionList/Set/QueueMap 独立层次。常用实现:ArrayListHashMapHashSetLinkedHashMapTreeMap(有序)、ConcurrentHashMap(并发读多写场景常用)。

选择要点

  • 需要索引随机访问:List(通常 ArrayList)。
  • 需要键值:Map线程安全需求勿默认 Hashtable,优先考虑 ConcurrentHashMap 或外部同步策略。
  • 不可变集合:JDK 9+ List.ofMap.ofSet.of;Guava Immutable* 在旧项目仍常见。

Stream

惰性流水线:filter/map/reduce/collect。终端操作触发计算。注意:

  • 流一般一次性,重用须重新创建。
  • parallelStream() 仅在可拆分、无副作用、且 profiling 证明收益时使用;默认串行更简单可预测。

相等与排序

equals/hashCode 契约;Tree* 依赖 ComparableComparator,与 equals 一致性问题需设计时考虑。

技术文库