20230602 java.util.Spliterator

介紹

  • java.util.Spliterator
  • public interface Spliterator<T>
  • 可分割迭代器
  • Spliterator 用於將一個數據源分割爲多個部分,每個部分可以在不同的線程中進行遍歷。 Spliterator 也爲並行流提供了支持。

API

常量

這些常量都是特徵值:

  • ORDERED
    • 遍歷的元素以當前狀態的某種特定順序排列
  • DISTINCT
    • 元素不重複
  • SORTED
    • 元素在遍歷時按照某種排序方式被返回
    • 報告 SORTED 也必須報告 ORDERED
  • SIZED
    • 具有已知大小,即 estimateSize() 方法的返回值是精確的
  • NONNULL
    • 元素不爲 null
  • IMMUTABLE
    • 元素是不可變的
  • CONCURRENT
    • 支持併發遍歷
  • SUBSIZED
    • Spliterator 分割出的子 Spliterator 也具有已知大小,即estimateSize() 方法的返回值是精確的

public

  • tryAdvance
    • boolean tryAdvance(Consumer<? super T> action);
    • 執行給定的操作,如果當前元素存在且被消費了,則返回 true
  • forEachRemaining
    • void forEachRemaining(Consumer<? super T> action)
    • 對剩餘元素執行給定的操作,直到遇到最後一個元素或執行操作時出現異常爲止
  • trySplit
    • Spliterator<T> trySplit();
    • 嘗試將元素分成兩部分,遍歷這一部分並返回一個新的 Spliterator 用於遍歷剩餘部分。如果不能進行進一步的劃分,則返回 null。此方法用於將數據源分成多個部分,以便在不同線程中分別處理。
  • estimateSize
    • long estimateSize();
    • 估計還剩下多少元素需要遍歷,可能不準確
  • getExactSizeIfKnown
    • long getExactSizeIfKnown()
    • 如果此 Spliterator 爲 SIZED 則返回 estimateSize() ,否則返回 -1
  • characteristics
    • int characteristics();
    • 返回特徵值
  • hasCharacteristics
    • boolean hasCharacteristics(int characteristics)
    • 判斷是否具有特徵值
  • getComparator
    • Comparator<? super T> getComparator()
    • 如果 SORTED ,則返回 Comparator 。如果按自然順序,則返回 null 。否則,如果源不是 SORTED ,則拋出 IllegalStateException
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章