当前位置: 代码迷 >> 综合 >> Java1.8源码解析-Collection接口
  详细解决方案

Java1.8源码解析-Collection接口

热度:60   发布时间:2023-12-16 09:21:55.0
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();//查看此集合是否包含此元素,如果包含返回trueboolean contains(Object o);//返回此集合的一个迭代器Iterator<E> iterator();//返回此集合的所有数组所构成的一个数组Object[] toArray();//返回此集合的所有数组所构成的一个数组 会根据T的不同返回不同类型的数组<T> T[] toArray(T[] a);//在集合中添加元素boolean add(E e);//从集合中删除某个元素boolean remove(Object o);//传入一个集合,查看集合中是否包含全部元素,如果全部包含返回Trueboolean 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();//置其结果为trueremoved = true;}}return removed;}//删除此元素所有的元素void clear();//比较两个集合是否相等boolean equals(Object o);//返回此集合的HashCodeint hashCode();//将集合分割为并行迭代器@Overridedefault 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);} } 
  相关解决方案