Java学习笔记之Collection接口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangshuaionline/article/details/85606736

Collection基于JDK1.2,继承自Iterable,Collection为集合层次结构的根接口,根据是否允许内部元素重复,分为Set和List集合。
包含方法:

  1. int size();返回集合中元素的数量,如果集合中元素个数大于Integer.MAX_VALUE,则返回Integer.MAX_VALUE。
  2. boolean isEmpty();如果集合中不包含元素,返回true。否则返回false。
  3. boolean contains(Object o);如果集合中包含指定元素,则返回true。
  4. Iterator iterator();返回集合中元素的迭代器。
  5. Object[] toArray();返回包含此集合中所有元素的数组。
  6. T[] toArray(T[] a);返回一个包含此集合中所有元素的数组。
    List<String> arrayList = new ArrayList<>();
    arrayList.add("aaa"+11);
    arrayList.add("aaa"+22);
    arrayList.add("aaa"+33);
    List<String> linkedList = new LinkedList<>();
    for(int i =0;i<100;i++){
        linkedList.add("aaa"+i);
    }
    Log.w("打印"," "+linkedList.size());
    linkedList.toArray(arrayList.toArray());
    Log.w("打印"," "+linkedList.size());
    
    输出结果:
    W/打印:  100
    W/打印:  100
    
  7. boolean add(E e);确保此集合包含指定的元素(list和set不同),如果此集合因调用此方法而更改,则返回true。
  8. boolean remove(Object o);移除此集合的指定元素,默认单个实例。
    List<String> linkedList = new LinkedList<>();
    for(int i =0;i<100;i++){
        linkedList.add("aaa"+i);
    }
    linkedList.add("aaa"+1);
    linkedList.add("aaa"+1);
    linkedList.add("aaa"+1);
    Log.w("打印"," "+linkedList.size());
    linkedList.remove("aaa"+2);
    Log.w("打印"," "+linkedList.size());
    
    输出结果:
    W/打印:  103
    W/打印:  102
    
  9. boolean containsAll(Collection<?> c);如果此集合包含指定集合中的所有元素,则返回true。
  10. boolean addAll(Collection<? extends E> c);将指定集合中的所有元素添加到此集合中,在set和list集合中,此方法执行的逻辑不同。
  11. boolean removeAll(Collection<?> c); 如果指定集合中的元素在此集合也存在,则删除。调用返回后,此集合将不包含与指定集合相同的元素。
  12. 第十二个方法基于JDK1.8,是一个default方法
    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;
    }
    
    删除此集合中满足给定谓词Predicate的所有元素。
  13. boolean retainAll(Collection<?> c); 仅保留此集合中包含在指定集合中的元素。
  14. void clear(); 移除此集合中所有元素,执行之后此集合为空。
  15. boolean equals(Object o);将指定对象与此集合进行比较以获得相等性。
  16. int hashCode();返回集合的哈希值。
  17. 第十七个方法是一个default方法:
    default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }
    
    JDK1.8开始添加,返回以此集合为源的Stream。
  18. 第十八个方法是一个default方法:
    default Stream<E> parallelStream() {
        return StreamSupport.stream(spliterator(), true);
    }
    
    JDK1.8开始添加,以此集合为源返回可能并行的Stream,此方法允许返回顺序流。

猜你喜欢

转载自blog.csdn.net/yangshuaionline/article/details/85606736