《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)分割然後起多線程調用,來減少遍歷的時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章