Skip to content

Latest commit

 

History

History
166 lines (122 loc) · 3.22 KB

File metadata and controls

166 lines (122 loc) · 3.22 KB
aliases
tags
java
collection
map
created 2026-07-20 13:53:28 -0700
modified 2026-07-20 13:59:35 -0700

Java 集合框架笔记


简介

Java 集合相关的接口和类,是放在 java.base 这个「模块」(module)中 java.util 包(Package)下。

classDiagram


	class Iterable{
		<<interface>>
		default void forEach(Consumer<? super T> action)
		Interator<T> inerator()
		default Spliterator<T> spliterator()
	}

	class Collection{
		<<interface>>
		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> T[] toArray(T[] a)
		
	}

	class Map{
		<<interface>>
		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<V> values()
	}


	class SequencedCollection{
		<<interface>>
		default void addFirst(E e)
		default void addLast(E e)
		default E getFirst()
		default E getLast()
		default E removeFirst()
		default E removeLast()
		SequencedCollection<E> reversed()	
	}

	class List{
		<<interface>>
	}

	class Set{
		<<interface>>
	}

	class ArrayList{
	
	}

	class LinkedList{
		
	}

	class HashSet{
		
	}

	class AbstractMap{
		boolean containsKey(Object key)
		boolean containsValue(Object value)
		V get(Object key)
		boolean isEmpty()
		Set<K> keySet()
		Collection<V> 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

Loading

Collection 接口是 Iterable 接口的子接口,也就是意味着 Collection 接口及其「子孙」接口都拥有「迭代」能力。

List

JDK21 开始,List 接口多了一个父接口:SequencedCollection

List 接口提供了四种用于按位置(索引)访问列表元素的方法。

  • get(int index):通过索引返回元素
  • getFirst():返回 List 中第一个元素,这是 JDK21 新加的
  • getLast():返回 List 中最后一个元素,这是 JDK21 新加的

Set

Set 是直接与数学中的集合概念对应的接口。

[!info]

As implied by its name, this interface models the mathematical set abstraction.

Tip

Python 中的 集合 就称为 set

Set 接口特性:

  • 无序
  • 元素不重复

Map


相关笔记