首页 > 其他 > 详细

集合源码分析[1]-Collection 源码分析

时间:2019-03-23 20:23:13      阅读:185      评论:0      收藏:0      [点我收藏+]

Collection

1. 介绍

该类是所有集合的子类

2. 继承关系

技术分享图片

3. 方法

技术分享图片

4. JDK8新增的方法

removeIf(Predicate<? super E> filter)

使用lambda方式移除元素

       default boolean removeIf(Predicate<? super E> filter) {
        //校验lambda是否为空
        Objects.requireNonNull(filter);
        boolean removed = false;
        //获取迭代器
        final Iterator<E> each = iterator();
        //循环判断
        while (each.hasNext()) {
            //如果该方法执行返回true则移除该元素
            if (filter.test(each.next())) {
                each.remove();
                removed = true;
            }
        }
        //返回是否成功移除
        return removed;
    }

Spliterator<E> spliterator()

返回并发分割器,用于并发流式处理的时候调用

    @Override
    default Spliterator<E> spliterator() {
        return Spliterators.spliterator(this, 0);
    }

Stream<E> stream()

返回流对象

    default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }

Stream<E> parallelStream()

返回并发流式对象

    default Stream<E> parallelStream() {
        return StreamSupport.stream(spliterator(), true);
    }

5. 总结

  1. 在Collection中定义了一些常用的接口,供子类去实现
  2. 在JDK1.8中新增了一些方法,例如获取获取流式函数的方法
  3. 在这个接口中引入了default方法

集合源码分析[1]-Collection 源码分析

原文:https://www.cnblogs.com/lonecloud/p/10585347.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!