7
如在this question中所述,distinct()
的實現能夠在運行時知道其操作的流被排序時使用更高效的算法。如果我們知道該流是排序的(例如,因爲它來自外部預先排序的數據源,例如帶有order by
子句的SQL查詢),但是沒有被標記爲這樣,我們如何才能達到類似的結果?有一個unordered()
操作可以刪除排序標誌,但據我所知,沒有辦法告訴系統數據已經從外部排序。Java Streams:預排序流上的distinct()?
我使用第三方庫中產生的數據流,所以我完全不創造spliterators自己。我想我*可以使用某種代理分割器,這可能會起作用。 – Jules
是的,報告不同特徵的包裝分割器似乎是唯一的解決方案。 – Holger