《Java基础知识》Java 分割迭代器(Spliterator)

前言

研读ArrayList源码的时候,发现使用了(Spliterator)分割迭代器。就简单的了解一下分割迭代器的使用方式。

原理

看一个分割迭代器的使用案例:

public class SpliteratorTest {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 100 ; i++) {
            list.add(i+"");
        }

        // 分割迭代器
        Spliterator spliterator = list.spliterator();
        Spliterator s1 = spliterator.trySplit();
        Spliterator s2 = spliterator.trySplit();

        System.out.println("===============spliterator================");
        spliterator.forEachRemaining((i) -> System.out.print(i+" "));
        System.out.println();
        System.out.println("===============s1================");
        s1.forEachRemaining((i) -> System.out.print(i+" "));
        System.out.println();
        System.out.println("===============s2================");
        s2.forEachRemaining((i) -> System.out.print(i+" "));
        System.out.println();
    }
}

运行结果:

总结

分割迭代器(Spliterator)平时工作中使用也比较少,我能想到的使用场景就是,一个list size特别大,通过分割迭代器(Spliterator)分割然后起多线程调用,来减少遍历的时间。

posted @ 2020-11-13 16:37  加速丨世界  阅读(1082)  评论(0编辑  收藏  举报