Java集合框架详解(二)——Collection源码分析

本文详细解析了Java中Collection接口的源码,包括其基本方法如添加、删除、遍历等,以及默认实现方法如流操作等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Collection源码:

package java.util;

import java.util.function.Predicate;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;

public interface Collection extends Iterable {
	//定义长度
	int size();
	//是否为空
	boolean isEmpty();
	//是否包含某个元素
	boolean contains(Object o);
	//返回一个迭代器iterator
	Iterator iterator();
	//返回集合中所有元素组成的数组,数组元素的返回顺序要和迭代器访问集合元素的返回顺序一样 
	Object[] toArray();
	//返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。
	 T[] toArray(T[] a);
	//向集合中添加一个元素,如果集合不允许重复元素,且集合中已经含有该元素,返回false
	boolean add(E e);
	//从此集合中移除一个指定元素,如果集合中存在指定元素,返回true
	boolean remove(Object o);
	//如果此集合中包含指定集合中的所有元素,则返回true
	boolean containsAll(Collection c);
	//将指定集合中的所有元素都添加到此集合中
	boolean addAll(Collection c);
	//移除此集合中指定集合的所有元素
	boolean removeAll(Collection c);
	default boolean removeIf(Predicate filter) {
		Objects.requireNonNull(filter);
		boolean removed = false;
		final Iterator each = iterator();
		while (each.hasNext()) {
			if (filter.test(each.next())) {
				each.remove();
				removed = true;
			}
		}
		return removed;
	}
	//仅保留此集合中那些也包含在指定集合中的元素
	boolean retainAll(Collection c);
	//移除此集合的所有元素
	void clear();
	//比较次集合与指定对象是否相等,通过覆盖,实现list与list相等,set与set相等
	boolean equals(Object o);
	//返回此集合的哈希值
	int hashCode();

	@Override
	default Spliterator spliterator() {
		return Spliterators.spliterator(this, 0);
	}
	
	default Stream stream(){
		return StreamSupport.stream(spliterator(), false);
	}
	
	default Stream parallelStream(){
		return StreamSupport.stream(spliterator(), true);
	}
}


从源码中可以看出Collection是一个接口,它是一个高度抽象出来的集合,包含了集合的基本操作:添加、删除、清空、遍历、是否为空、获取大小等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值