Java 容器简介
【简单】Java 中有哪些集合类?⭐⭐

Java 容器类主要位于 java.util 包,分为 Collection 和 Map 两大类:

Java 容器类主要位于 java.util 包,分为 Collection 和 Map 两大类:
Stream 操作分为中间操作(返回 Stream,可链式)和终端操作(触发执行,返回结果)。
核心区别:
| 维度 | 中间操作 | 终端操作 |
|---|---|---|
| 返回类型 | Stream<T> |
非 Stream(值/集合/void) |
| 执行时机 | 惰性(不触发执行) | 立即触发整个流水线 |
| 链式调用 | 可继续接操作 | 流终止,不可再操作 |
| 短路 | 部分支持(如 limit) |
部分支持(如 findFirst) |
Hash 碰撞是指:不同 key 经哈希函数计算后,得到相同结果。
Hash 碰撞解决方案:
关键优化:
Stream 是 Java 8 引入的核心特性之一,位于 java.util.stream 包中。它提供了一种高效且可声明的方式来处理数据序列(集合、数组、文件行等),支持链式操作、函数式编程风格和并行处理。
Stream 不是数据结构,它不会存储数据,而是对 Collection 或数组等数据源进行惰性求值(Lazy Evaluation)的操作管道。Stream 操作不会修改数据源,而是返回一个新的 Stream 或结果。
在 Java 8 中,
Collection新增了两个流方法:stream()和parallelStream()。
Java 容器框架以 Collection 和 Map 两大体系为核心,涵盖 List、Set、Queue 等经典数据结构及其底层实现原理(数组、链表、红黑树、哈希表)。结合 Stream API 的声明式数据处理能力,构成 Java 日常开发中数据组织、操作与转换的完整工具链,是面试中考察数据结构与算法功底的核心阵地。
Collection、Map、Iterator、Comparator、fail-fastArrayList、LinkedList、动态扩容、RandomAccess、subListHashMap、LinkedHashMap、TreeMap、红黑树、负载因子HashSet、LinkedHashSet、TreeSet、去重、NavigableSetDeque、ArrayDeque、PriorityQueue、BlockingQueue、二叉堆Stream、中间操作、终结操作、Collector、惰性求值队列(Queue)是一种先进先出(FIFO)的线性数据结构。Java 中的 Queue 接口位于 java.util 包下,扩展了 Collection 接口,提供了入队、出队、查看队首元素等核心操作。此外,双端队列 Deque 和优先级队列 PriorityQueue 为不同场景提供了更灵活的选择。

在并发编程中,容器是存储和管理数据的核心组件。普通的集合容器(如 ArrayList、HashMap)不是线程安全的,在多线程环境下会出现数据不一致问题。Java 提供了两类并发容器:同步容器(通过 synchronized 实现线程安全,性能较低)和并发容器(通过更精细的并发设计实现更高性能,如 ConcurrentHashMap、CopyOnWriteArrayList、BlockingQueue 等)。选择合适的并发容器是高并发程序的关键。
Map 是 Java 容器框架中用于存储键值对(key-value)的接口,每个键最多映射一个值,且键不能重复。Map 的主要实现类包括:HashMap(无序、高性能)、LinkedHashMap(保持插入顺序)、TreeMap(有序、红黑树)和 WeakHashMap(弱键、GC 友好)。Map 是日常开发中使用最广泛的容器之一,适用于缓存、配置、索引等场景。

Set 是 Java 容器框架中用于存储不重复元素的集合。它继承自 Collection 接口,通过内部机制保证元素的唯一性。Java 提供了多种 Set 实现:HashSet(无序、高性能)、LinkedHashSet(保持插入顺序)、TreeSet(有序、红黑树)和 EnumSet(枚举专用),各自适用于不同的场景。

Java 容器(Collections)是存储和管理对象的数据结构框架,位于 java.util 包中。容器框架提供了丰富的接口和实现类,包括 List、Set、Queue、Map 等,支持泛型、迭代器、比较器、并发安全等核心机制。深入理解容器框架是编写高质量 Java 程序的基础。
Java 中常用的存储容器就是数组和容器,二者有以下区别: