Collection接口
在 Java 中,Collection
接口是 Java 集合框架的根接口之一,它位于 java.util
包下,定义了一组对象的集合应具备的基本操作。许多具体的集合类(如 List
、Set
等)都继承自 Collection
接口,因此理解 Collection
接口对于掌握 Java 集合框架至关重要。
1. 接口定义
public interface Collection<E> extends Iterable<E> { // 集合的基本操作方法 int size(); boolean isEmpty(); boolean contains(Object o); Iterator<E> iterator(); Object[] toArray(); <T> T[] toArray(T[] a); boolean add(E e); boolean remove(Object o); boolean containsAll(Collection<?> c); boolean addAll(Collection<? extends E> c); boolean removeAll(Collection<?> c); default boolean removeIf(Predicate<? super E> filter) { Objects.requireNonNull(filter); boolean removed = false; final Iterator<E> each = iterator(); while (each.hasNext()) { if (filter.test(each.next())) { each.remove(); removed = true; } } return removed; } boolean retainAll(Collection<?> c); void clear(); boolean equals(Object o); int hashCode(); @Override default Spliterator<E> spliterator() { return Spliterators.spliterator(this, 0); } default Stream<E> stream() { return StreamSupport.stream(spliterator(), false); } default Stream<E> parallelStream() { return StreamSupport.stream(spliterator(), true); } }
2. 主要方法说明
2.1 集合大小和判空
int size()
:返回集合中元素的数量。boolean isEmpty()
:判断集合是否为空。
2.2 元素查找
boolean contains(Object o)
:判断集合中是否包含指定元素。
2.3 迭代器
Iterator<E> iterator()
:返回一个用于遍历集合元素的迭代器。
2.4 数组转换
Object[] toArray()
:将集合中的元素转换为一个Object
数组。<T> T[] toArray(T[] a)
:将集合中的元素转换为指定类型的数组。
2.5 元素添加和删除
boolean add(E e)
:向集合中添加指定元素,如果集合因此发生改变则返回true
。boolean remove(Object o)
:从集合中移除指定元素,如果集合中包含该元素则返回true
。boolean removeIf(Predicate<? super E> filter)
:移除集合中满足给定谓词的所有元素。
2.6 集合操作
boolean containsAll(Collection<?> c)
:判断集合是否包含指定集合中的所有元素。boolean addAll(Collection<? extends E> c)
:将指定集合中的所有元素添加到当前集合中,如果集合因此发生改变则返回true
。boolean removeAll(Collection<?> c)
:移除当前集合中包含在指定集合中的所有元素,如果集合因此发生改变则返回true
。boolean retainAll(Collection<?> c)
:仅保留当前集合中包含在指定集合中的元素,如果集合因此发生改变则返回true
。
2.7 清空集合
void clear()
:移除集合中的所有元素。
2.8 其他方法
boolean equals(Object o)
:比较指定对象与当前集合是否相等。int hashCode()
:返回集合的哈希码值。Spliterator<E> spliterator()
:返回一个可分割迭代器,用于并行遍历集合元素。Stream<E> stream()
:返回一个顺序流,用于对集合元素进行流式操作。Stream<E> parallelStream()
:返回一个并行流,用于对集合元素进行并行流式操作。
3. 使用示例
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class CollectionExample { public static void main(String[] args) { // 创建一个 Collection 实例,这里使用 ArrayList Collection<String> collection = new ArrayList<>(); // 添加元素 collection.add("apple"); collection.add("banana"); collection.add("cherry"); // 打印集合大小 System.out.println("集合大小: " + collection.size()); // 判断集合是否包含指定元素 System.out.println("集合是否包含 'banana': " + collection.contains("banana")); // 使用迭代器遍历集合 Iterator<String> iterator = collection.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } // 移除元素 collection.remove("apple"); System.out.println("移除 'apple' 后集合大小: " + collection.size()); // 清空集合 collection.clear(); System.out.println("清空集合后是否为空: " + collection.isEmpty()); } }
4. 总结
Collection
接口为 Java 集合框架提供了统一的操作规范,通过继承该接口,不同的集合类可以实现各自的具体功能。掌握 Collection
接口的方法和使用方式,有助于更好地使用 Java 集合框架进行数据处理和管理。
Java集合框架 文章被收录于专栏
Java集合框架是Java提供的一组用于存储和操作数据的类和接口,它位于java.util包中,为开发者提供了强大且灵活的数据存储和处理能力。以下将从整体架构、主要接口、常用实现类、使用场景以及示例代码等方面详细介绍Java集合框架。