Collection 是存储单个元素的集合的根接口,定义了所有单元素集合(如 List、Set、Queue)的通用操作,核心方法如下:
boolean add(E e):向集合中添加一个元素。 List(如 ArrayList),总是返回 true(允许重复);Set(如 HashSet),若元素已存在则返回 false(不允许重复)。boolean addAll(Collection<? extends E> c):将另一个集合中的所有元素添加到当前集合。 true。boolean remove(Object o):删除集合中第一个匹配的指定元素(依赖 equals() 方法判断相等),删除成功返回 true。boolean removeAll(Collection<?> c):删除当前集合中所有包含在集合 c 中的元素(即保留差集:当前集合 - c),修改则返回 true。boolean retainAll(Collection<?> c):仅保留当前集合中同时存在于集合 c 中的元素(即保留交集:当前集合 ∩ c),修改则返回 true。void clear():清空集合中所有元素,调用后 size() 为 0。int size():返回集合中元素的数量。boolean isEmpty():判断集合是否为空(size() == 0 时返回 true)。boolean contains(Object o):判断集合中是否包含指定元素(依赖 equals() 方法)。boolean containsAll(Collection<?> c):判断当前集合是否包含集合 c 中的所有元素。Iterator<E> iterator():返回用于遍历集合的迭代器(Iterator),支持 hasNext()(是否有下一个元素)和 next()(获取下一个元素)。Object[] toArray():将集合转换为 Object 数组(需手动强转类型,不常用)。<T> T[] toArray(T[] a):将集合转换为指定类型的数组(推荐,避免类型转换问题)。Map 是存储键值对(Key-Value)的映射表接口(键唯一,值可重复),核心方法如下:
V put(K key, V value):添加或修改键值对。 key 已存在,则用 value 覆盖旧值,返回旧值;key 不存在,添加新键值对,返回 null。void putAll(Map<? extends K, ? extends V> m):将另一个 Map 中的所有键值对添加到当前 Map,重复的 key 会被覆盖。V remove(Object key):删除 key 对应的键值对,返回被删除的 value(若 key 不存在,返回 null)。boolean remove(Object key, Object value):仅当 key 对应的 value 恰好为指定值时才删除,删除成功返回 true(更精确的删除)。void clear():清空所有键值对,调用后 size() 为 0。V get(Object key):根据 key 获取对应的 value(若 key 不存在,返回 null,需注意 value 本身可能为 null 的情况)。int size():返回键值对的数量。boolean isEmpty():判断 Map 是否为空(size() == 0 时返回 true)。boolean containsKey(Object key):判断 Map 中是否包含指定 key(依赖 hashCode() 和 equals() 方法)。boolean containsValue(Object value):判断 Map 中是否包含指定 value(需遍历所有值,效率较低)。Set<K> keySet():返回所有 key 的 Set 集合(因 key 唯一,故用 Set),可通过遍历 key 再用 get(key) 获取 value。Collection<V> values():返回所有 value 的 Collection 集合(因 value 可重复,故用 Collection)。Set<Map.Entry<K, V>> entrySet():返回所有键值对的 Set 集合(Entry 是 Map 的内部接口,代表一个键值对,包含 getKey() 和 getValue() 方法),是遍历 Map 最高效的方式。Collection 方法聚焦“单个元素”的管理,核心是增删改查和遍历元素。Map 方法聚焦“键值对”的操作,核心是通过 key 操作 value,并提供键、值、键值对三种视图用于遍历。不同实现类(如 ArrayList 对 List、HashMap 对 Map)会基于自身数据结构优化方法,但接口定义的行为是统一的。