Java集合框架:Collection接口概览

本文概述了Java集合框架中的Collection接口,包括其作为Iterable接口的子接口,以及Collection接口下的一些主要子接口,如List、Set、SortedSet、NavigableSet、Queue和Deque。通过对各接口的继承关系、声明方法和部分源码示例的解析,深入理解这些接口在实际编程中的应用。
摘要由CSDN通过智能技术生成

Collection接口概览

 目录

                  Iterable接口

Collection接口

List/Set接口

SortedSet接口

Queue接口

Deque接口


Iterable接口

lterable继承关系:

lterable接口声明方法:

iterator() 返回集合类型的内部迭代器
forEach(Consumer<? super T> action) 有默认实现方法的forEach(lambda)
spliterator() 有默认的实现方法,用于集合的并行遍历

lterable接口的部分源码:

public interface Iterable<T> {

    // 返回一个迭代器
    Iterator<T> iterator();

    // 默认实现的遍历方法
    default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }

    // 返回一个用于并行遍历的迭代器
    default Spliterator<T> spliterator() {
        return Spliterators.spliteratorUnknownSize(iterator(), 0);
    }

}

ArrayList实现类部分源码:

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{    

    // iterator方法返回一个实现了Iterator接口的类
    public Iterator<E> iterator() {
        return new Itr();
    }

    // ArrayList的私有类,实现了Iterator接口
    private class Itr implements Iterator<E> {
        ...
    }

}

举例:

    @Test
    void iterable() {
        List<Integer> integers = new ArrayList<>(List.of(0, 1, 2, 3, 4, 5));

        // 返回ArrayList的内部迭代器
        Iterator<Integer> iterator = integers.iterator();

        // 遍历
        integers.forEach(System.out::println);

        // 并行遍历
        Spliterator<Integer> spliterator = integers.spliterator();
        spliterator.forEachRemaining(System.out::println);
    }

Collection接口

Collection继承关系

Collection接口声明方法:

contains(Object o) 若此集合包含指定元素,返回true
containsAll(Collection<?> c) 若此集合包含指定的集合,返回true
toArray() 返回包含此集合所有元素的数组
toArray(T[] a) 将集合转化为所需类型的数组
toArray(IntFunction<T[]> generator) 返回集合元素通过generator函数处理后的数组
removeIf(Predicate<? super E> filter) 删除符合条件的集合元素(lambda)
retainAll(Collection<?> c) 从集合中删除所有未包含在指定集合中的元素
stream() 返回以该集合为源的流
parallelStream() 返回以该集合为源的并行流(也允许返回顺序流)

Collection的部分源码:

// Collection接口 继承自 Iterable接口
public interface Collection<E> extends Iterable<E> {

    // 集合转换为Object类型数组
    Object[] toArray();

    // 集合转换为特定类型的数组
    <T> T[] toArray(T[] a);

    // 返回集合各元素经过generator函数处理后的数组
    default <T> T[] toArray(IntFunction<T[]> generator) {
        return to
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值