码迷,mamicode.com
首页 > 其他好文 > 详细

public interface Collection<E> extends Iterable<E>

时间:2018-04-25 21:00:33      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:pack   streams   tps   oar   function   als   api   class   ext   

package java.util;

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

public interface Collection<E> extends Iterable<E> {
    // 查询操作

    /**
     * @return 此集合中的元素数
     */
    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);

    /**
     * 安全移除
     * @since 1.8
     */
    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;
    }

    /**
     * 取交集方法retainAll
     *有两个集合newCoures和oldCourses,判断这两个集合是否包含相同的对象或元素
     */
    boolean retainAll(Collection<?> c);

    /**
     * 移除所有元素,使集合为空
     */
    void clear();


    // 比较和求哈希
    /**
     * 将指定对象与此集合进行比较以实现相等性。
     */
    boolean equals(Object o);

    /**
     *求集合的hashCode
     */
    int hashCode();

    /**
     *并行遍历
     *
     * @return a {@code Spliterator} over the elements in this collection
     * @since 1.8
     */
    @Override
    default Spliterator<E> spliterator() {
        return Spliterators.spliterator(this, 0);
    }

    /**
     * https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/index.html
     * @since 1.8
     */
    default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }

    /**
     * https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/index.html
     * @since 1.8
     */
    default Stream<E> parallelStream() {
        return StreamSupport.stream(spliterator(), true);
    }
}

  

public interface Collection<E> extends Iterable<E>

标签:pack   streams   tps   oar   function   als   api   class   ext   

原文地址:https://www.cnblogs.com/mayZhou/p/8809418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!