Java學習筆記之Spliterator介面

2021-09-06 15:26:09 字數 2260 閱讀 8412

spliterator從jdk1.8開始投入使用。spliterator是用於遍歷和區分源元素的物件。spliterator可以覆蓋陣列、collection、io通道或生成器函式。

public static final int ordered = 0x00000010; 表示為元素定義遭遇順序的特徵值。trysplit中國年為拆分元素嚴格字首。tryadvance為按字首順序逐個元素。foreachremaining按順序執行操作。

public static final int distinct = 0x00000001;表示對於每對遇到的元素。

public static final int sorted = 0x00000004;表示遇到訂單遵循定義的排序順序的特徵值。getcomparator將返回關聯的comparator,如果所有元素都是comparable,則返回null,並按其自然順序排序。

public static final int sized = 0x00000040; 表示在遍歷或拆分之前從estimatesize()返回的值的特性值表示有限大小,在沒有結構源修改的情況下,表示完整遇到的元素數量的精確計數遍歷。

public static final int nonnull = 0x00000100;表示源保證遇到的元素不會是null。

public static final int immutable = 0x00000400;表示元素源不能進行結構修改的特性值。無法新增、替換、刪除元素。

public static final int concurrent = 0x00001000;表示可以在沒有外部同步的情況下由多個執行緒安全地同時修改元素源(允許新增、替換、刪除)的特性值。

public static final int subsized = 0x00004000;特徵值表示?️trysplit產生的所有分隔符將同時為sized和subsized。這意味著所有spliterator,無論直接還是間接,都是sized。

boolean tryadvance(consumer<? super t> action);如果存在剩餘元素,則對其執行給定操作,返回true。否則返回false。

第二個方法為default方法:

default

void

foreachremaining

(consumer<

?super t> action)

while

(tryadvance

(action));

}

在當前執行緒中按順序對每個剩餘元素執行給定操作,直到所有元素都已處理或操作引發異常。

spliterator trysplit();如果可以對此spliterator進行區分,則返回spliterator覆蓋元素。

long estimatesize();返回foreachremaining遍歷將遇到的元素數量的估計值,如果無限,未知或計算成本太高,則返回long.max_value.

第五個方法是乙個default方法:

default

long

getexactsizeifknown()

如果spliterator為sized則返回estimatesize(),否則返回-1。

int characteristics();返回spliterator及其元素的一組特性,ordered、destinct、sorted、sized、nonnull、immutable、concurrent、subsized。

第七個方法是乙個default方法:

default

boolean

hascharacteristics

(int characteristics)

如果spliterator的characteristics包含所有給定的特徵,則返回true。

第八個方法是乙個default方法;

default comparator<

?super t>

getcomparator()

如果comparator的此spliterator源唯sorted,則返回comparator。如果為sorted則返回null。否則,如果不是sorted,丟擲illegalstateexception。

ofprimitive: 專門用於原始址的spliterator。

ofint:專門用於int值的spliterator。

oflong:專門用於long值的spliterator。

ofdouble:專門用於double值。

Java學習筆記之JOptionPane

你喜歡看定影嗎?自定義詢問 intn joptionpane.showconfirmdialog this,你喜歡藍色嗎?詢問 joptionpane.yes no option intn joptionpane.showconfirmdialog this,你喜歡藍色嗎?詢問 joptionpan...

Java學習筆記之陣列

陣列 概念 同一種型別資料的集合,其實陣列就是乙個容器.陣列的好處 可以自動給陣列中的元素從0開始編號,方便操作這些元素.格式1 元素型別 陣列名 new 元素型別 元素個數 格式2 元素型別 陣列名 new 元素型別 記憶體的劃分 1 暫存器 2 本地方法區 3 方法區 4 棧記憶體 儲存的都是區...

java學習筆記之異常

基礎的就不多說了,說一下容易被忽略的知識點。a 不管有木有出現異常,finally塊中 都會執行 b 當try和catch中有return時,finally仍然會執行 c finally是在return後面的表示式運算後執行的 此時並沒有返回運算後的值,而是先把要返回的值儲存起來,管finally中...