zoukankan      html  css  js  c++  java
  • JAVA-容器(2)-Collection

    (基于JDK1.8源码分析)

    一,Collection

      所有实现Collection接口的类原则上应该提供两种构造函数:

      【1】无参构造-创建一个空的容器

      【2】有参构造-创建一个新的Collection,这个新的Collection和传入的Collection具有相同的元素

    二,源码分析

      

    public interface Collection<E> extends Iterable<E> {
    
        /** 集合大小 */
        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);
        /** 集合中是否包含C集合中的元素*/
        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();
                    removed = true;
                }
            }
            return removed;
        }
    
        /** 集合中只保留C集合中的元素*/
        boolean retainAll(Collection<?> c);
        /** 清空集合元素*/
        void clear();
       /** 比较集合元素是否相同*/
        boolean equals(Object o);
        /** 计算哈希码*/
        int hashCode();
    
        /***/
        @Override
        default Spliterator<E> spliterator() {
            return Spliterators.spliterator(this, 0);
        }
        /***/
        default Stream<E> stream() {
            return StreamSupport.stream(spliterator(), false);
        }
        /***/
        default Stream<E> parallelStream() {
            return StreamSupport.stream(spliterator(), true);
        }
    }
  • 相关阅读:
    Codeforces Round #370 (Div. 2) D. Memory and Scores DP
    HDU 5876 Sparse Graph BFS 最短路
    HDU 5875 Function st + 二分
    HDU 5869 Different GCD Subarray Query 离线+树状数组
    2016 ACM/ICPC Asia Regional Dalian Online HDU 5877 Weak Pair treap + dfs序
    detection in video and image
    vs 2012打开vs2013的sln
    dl in image process
    classifier
    mark
  • 原文地址:https://www.cnblogs.com/wanhua-wu/p/6652901.html
Copyright © 2011-2022 走看看