Collection接口

在 Java 中,Collection 接口是 Java 集合框架的根接口之一,它位于 java.util 包下,定义了一组对象的集合应具备的基本操作。许多具体的集合类(如 ListSet 等)都继承自 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集合框架。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务