public interface Collection<E> extends Iterable<E>

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);
    }
}

  

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

时间: 2024-11-13 07:55:40

public interface Collection<E> extends Iterable<E>的相关文章

安卓中級教程(7):annotation中的 public @interface的用法

1 package com.example.ele_me.util; 2 3 import java.lang.annotation.Retention; 4 import java.lang.annotation.Target; 5 import java.lang.annotation.ElementType;  6 import java.lang.annotation.RetentionPolicy;  7 8 /** 9 * Use this annotation to mark th

public interface ICloneable

using System.Runtime.InteropServices; namespace System{ // // 摘要: // 支持克隆,即用与现有实例相同的值创建类的新实例. [ComVisible(true)] public interface ICloneable { // // 摘要: // 创建作为当前实例副本的新对象. using System.Runtime.InteropServices; namespace System { // // 摘要: // 支持克隆,即用与

java集合之Collection架构

Java集合之Collection架构 首先,我们对Collection进行说明.下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set.List和Set都是接口,它们继承于Collection.List是有序的队列,List中可以有重复的元素:而Set是数学概念中的集合,Set中没有重复元素!List和Set都有它们各自的实现类. 如ArrayList  LinkedList  Vector  Stack 为了方便,我们抽

Java 集合系列02之 Collection架构

[转自]http://www.cnblogs.com/skywang12345/p/3308513.html 概要 首先,我们对Collection进行说明.下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set. List和Set都是接口,它们继承于Collection.List是有序的队列,List中可以有重复的元素:而Set是数学概念中的集合,Set中没有重复元素!List和Set都有它们各自的实现类. 为了方便,我们

源码(03) -- java.util.Collection&lt;E&gt;

 java.util.Collection<E> 源码分析 --------------------------------------------------------------------------------- java.util.Collection<E>是一个接口,它的定义如下: 1 public interface Collection<E> extends Iterable<E> { 2 // Query Operations 3 //

Java集合 - Collection

Ref:http://blog.csdn.net/liulin_good/article/details/6213815  http://www.cnblogs.com/averey/p/4306166.html 一.java.util.Iterator<E>接口 迭代器 1 package java.util; 2 3 public interface Iterator<E>{ 4 // Return true iteration has more elements 5 bool

java源码(4) -- java.util.Collection

我也不知道看源码有什么用,就是想去看看... java.util.Collection 这是一个接口,是java中集合框架的根接口. 下面来具体看看该接口中定义了哪些方法 public interface Collection<E> extends Iterable<E>{ //操作集合元素的方法 boolean add(E e);//将元素E添加到该集合中 boolean addAll(Collection<? extends E> c);//将集合c添加到该集合中

java.util之Iterable与Iterator

package java.lang; import java.util.Iterator; public interface Iterable<T> { Iterator<T> iterator();} Iterable位于java.lang包中,它持有一个Iterator引用 package java.util; public interface Iterator<E> { boolean hasNext(); E next(); void remove();} It

Java 集合系列 02 Collection架构

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 首先,我们对Collection进行说明.下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set. List和Set都是接口,它们继承于Collection.L