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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM