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集合框架。
