See More

--- aliases: [] tags: - java - collection - map created: 2026-07-20 20:53:28 modified: 2026-07-20 20:59:35 --- # Java 集合框架笔记 --- ## 简介 [Java](Java_Note.md) 集合相关的接口和类,是放在 `java.base` 这个「模块」(module)中 `java.util` 包(Package)下。 ```mermaid classDiagram class Iterable{ <> default void forEach(Consumer super T> action) Interator inerator() default Spliterator spliterator() } class Collection{ <> boolean add(E e) boolean addAll(Collection extends E> c) void clear() boolean contains(Object o) boolean containsAll(Collection> c) boolean isEmpty() boolean remove(Object o) boolean removeAll(Collection> c) default boolean removeIf(Predicate super E> filter) int size() Object[] toArray() T[] toArray(T[] a) } class Map{ <> V put(K key,V value) void putAll(Map extends K,? extends V> m) V get(Object key) default V getOrDefault(Object key, V defaultValue) V remove(Object key) default boolean remove(Object key, Object value) default void forEach(BiConsumer super K, ? super V> action) boolean isEmpty() int size() Collection values() } class SequencedCollection{ <> default void addFirst(E e) default void addLast(E e) default E getFirst() default E getLast() default E removeFirst() default E removeLast() SequencedCollection reversed() } class List{ <> } class Set{ <> } class ArrayList{ } class LinkedList{ } class HashSet{ } class AbstractMap{ boolean containsKey(Object key) boolean containsValue(Object value) V get(Object key) boolean isEmpty() Set keySet() Collection values() V put(K key,V value) void putAll(Map extends K,? extends V> m) V remove(Object key) int size() } class HashMap{ } Iterable <|-- Collection Collection <|-- List Iterable <|-- List SequencedCollection <|-- List List <|.. ArrayList List <|.. LinkedList Collection <|-- Set Iterable <|-- Set Set <|.. HashSet Map <|.. AbstractMap AbstractMap <|.. HashMap ``` `Collection` 接口是 `Iterable` 接口的子接口,也就是意味着 `Collection` 接口及其「子孙」接口都拥有「迭代」能力。 ## List 从 [JDK21](Java_Note.md#JDK21) 开始,`List` 接口多了一个父接口:`SequencedCollection`。 `List` 接口提供了四种用于按位置(索引)访问列表元素的方法。 * `get(int index)`:通过索引返回元素 * `getFirst()`:返回 List 中第一个元素,这是 [JDK21](Java_Note.md#JDK21) 新加的 * `getLast()`:返回 List 中最后一个元素,这是 [JDK21](Java_Note.md#JDK21) 新加的 ## Set `Set` 是直接与数学中的集合概念对应的接口。 > [!info] > > As implied by its name, this interface models the mathematical *set* abstraction. > [!tip] > > [Python](../Python/Python_Note.md) 中的 [集合](../Python/Python_Syntax.md#集合) 就称为 `set`。 `Set` 接口特性: * 无序 * 元素不重复 ## Map --- ## 相关笔记 * [Java 笔记](Java_Note.md) * [Java 基础语法笔记](Java_Base_Note.md) * [Java 资料清单](Java_Material.md) * [Java 视频清单](Java_Videos.md)