回味集合(二) Collection

接着上次的继续,在集合框架的大家族中我们说完了集合的祖宗Iterator,接下来我们看看他的“孩子”—Collection

  public interface Collection<E> extends Iterable<E> 

可以看出来Collection也是一个接口,他继承的Iterator接口在Iterator的基础上又扩展的一些功能:

1. int size();
2. boolean isEmpty();
3.  boolean contains(Object o);
4. Iterator<E> iterator();
5. Object[] toArray();
6. <T> T[] toArray(T[] a);
7. boolean add(E e);
8. boolean remove(Object o);
9. boolean containsAll(Collection<?> c);
10.boolean addAll(Collection<? extends E> c);
11.boolean removeAll(Collection<?> c);
12.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;
    }
13.boolean retainAll(Collection<?> c);     
14.void clear();
15. boolean equals(Object o);
16.int hashCode();
17. default Spliterator<E> spliterator() {
        return Spliterators.spliterator(this, 0);
    }
18.default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }  
19. default Stream<E> parallelStream() {
        return StreamSupport.stream(spliterator(), true);
    }       

我们发现在Iterator的基础上Collection新增了很多的方法扩展使得更加强大,下面就对Collection中的方法一一说说:


1.size:返回此集合中的元素数.如果此集合包含多个元素,则就返回元素的总数。
2.isEmpty:判断集合是否为空,如果集合中没有元素,返回true
3.contains:用于判断集合中是否包含了指定的元素,如果包含则返回true
4.iterator:返回一个用于访问集合中每一个元素的迭代器。
5.toArray:将集合转换为数组,即返回这个集合的对象(集合中只能存放引用类型的数据)数组。
6.<T> T[] toArray(T[] a):返回这个集合的对象数组。如果a足够大,加将集合中的元素填入这个数组中。剩余空间填补null;否则,分配一个新的数组,其成员类型与a的成员类型相同,其长度等于集合的大小,并填充集合元素。
7.add:将一个元素添加到集合中,如果由于这个调用改变了集合,返回true
8.remove:从集合中删除指定的对象,如果有匹配的对象被删除,返回true
9.containsAll(Collection<?> c):判断集合中是否包含指定集合中的所有元素,包含返回true
10.addAll(Collection<? extends E> c):将指定集合的所有元素添加到这个集合中,添加成功返回true
11.removeAll(Collection<?> c):从这个集合中删除c集合中存在的所有元素,删除成功返回true
12.retainAll(Collection<?> c):从这个集合中删除所有与c集合中元素不同的元素,删除成功返回true
13.clear:清空集合中的所有元素。


1.removeIf(Predicate<? super E> filter):在JDK1.8中,Collection以及其子类新加入了removeIf方法,作用是按照一定规则过滤集合中的元素。结合Java8的新特性Lambda表达式的内置的四大核心函数式接口进行使用(Predicate:断言型接口)。
2.Spliterator<E> spliterator():Spliterator为JDK1.8最新添加的分割迭代器,位于java.util.Spliterator。


Stream<E> stream()
Stream<E> parallelStream

通过上面两个方法都可以得到该集合的流(Stream),这时Java8的新特性,我们可以通过这个Stream对象对集合进行操作从而得到最终的结果。

    List<Integer> list = new ArrayList();
        list.add(5);
        list.add(7);
        list.add(0);
        list.add(4);
        //得到流对象
        Stream stream = list.stream();
        //进行排序
        Stream stream1 = stream.sorted();
        //输出最终结果
        stream1.forEach(System.out::println);//0 4 5 7

关于java8的新特性可以看这个视频进行学习Java8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值