Supponiamo set
è un HashSet
con n
elementi e k
qualche int
tra 0
(incluso) e n
(esclusiva).Efficienza di collection.stream(). Salto(). FindFirst()
Qualcuno può spiegare, in termini semplici, cosa succede realmente quando lo fai?
set.stream().skip(k).findFirst();
In particolare, qual è la complessità temporale di questo? L'aggiunta di spliterator()
all'interfaccia Collection
significa che ora abbiamo un accesso più rapido agli elementi "casuali" delle raccolte di quanto sarebbe stato possibile con Java 7?
In generale, no, e non con 'HashSet'. 'HashSet.spliterator()' non ha la proprietà 'ORDERED', quindi potresti avere un comportamento indefinito qui. –
@LouisWasserman Grazie, pensavo di no, ma volevo solo una conferma. –
Si potrebbe notare che l'interfaccia 'Spliterator' non ha il metodo' skip' o nessun altro modo di spostare il puntatore all'elemento corrente. Quindi non c'è modo di implementare un "accesso più rapido agli elementi" casuali "delle collezioni" in cima a questo. – Holger