package java.util;
import java.util.function.Predicate;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
//Collection接口继承自Iterable,他具有Iterable中的所有方法,并且对其进行了扩展
public interface Collection<E> extends Iterable<E> {
//返回该集合中元素的多少
int size();
//返回此集合是否为空
boolean isEmpty();
//查看此集合是否包含此元素,如果包含返回true
boolean contains(Object o);
//返回此集合的一个迭代器
Iterator<E> iterator();
//返回此集合的所有数组所构成的一个数组
Object[] toArray();
//返回此集合的所有数组所构成的一个数组 会根据T的不同返回不同类型的数组
<T> T[] toArray(T[] a);
//在集合中添加元素
boolean add(E e);
//从集合中删除某个元素
boolean remove(Object o);
//传入一个集合,查看集合中是否包含全部元素,如果全部包含返回True
boolean containsAll(Collection<?> c);
//将一个集合全部添加到此集合中
boolean addAll(Collection<? extends E> c);
//删除此集合中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();
//置其结果为true
removed = true;
}
}
return removed;
}
//删除此元素所有的元素
void clear();
//比较两个集合是否相等
boolean equals(Object o);
//返回此集合的HashCode
int hashCode();
//将集合分割为并行迭代器
@Override
default Spliterator<E> spliterator() {
return Spliterators.spliterator(this, 0);
}
//将其集合转化为Stream集合
default Stream<E> stream() {
return StreamSupport.stream(spliterator(), false);
}
//返回可能并行的Stream与此集合作为其来源。 该方法允许返回顺序流。
default Stream<E> parallelStream() {
return StreamSupport.stream(spliterator(), true);
}
}
Java1.8源码解析-Collection接口
猜你喜欢
转载自blog.csdn.net/qq_38345606/article/details/80684974
今日推荐
周排行