從這個問題報告 IMMUTABLE 或 CONCURRENT 的拆分器保證永遠不會拋出 ConcurrentModificationException。當然,CONCURRENT 在語義上排除了 SIZED,但這對客戶端代碼沒有影響。事實上,這些特性并沒有用于 Stream API 中的任何東西,因此,不一致地使用它們永遠不會在某處引起注意。這也是為什么每個中間操作都具有清除 CONCURRENT、IMMUTABLE 和 NONNULL 特性的效果的解釋:Stream 實現不使用它們,并且表示流狀態的內部類不維護它們。如果流不使用來自源的 CHARACTERISTICS 那么流如何并行工作?流是否完全忽略了流源特性?從這個問題 收集器不知道我使用了供應商提供的并發收集,所以特征不是從收集器容器的類型推斷出來的流API在什么情況下考慮特性?哪些操作會重置哪些特征?
1 回答

白衣染霜花
TA貢獻1796條經驗 獲得超10個贊
你所要求的是可能的。這些答案中的正確措辭是,目前這些屬性被忽略,在未來它們可能會被流實現注入/讀取/使用。
同樣在您的評論中,您說:
someTreeSet().stream()
.sorted()
.... some other operations
會打電話sorted。這根本不是真的,在這種情況下,不會調用該操作。這是一個不會被忽略并被注入到流實現中的流標志TreeSet。
添加回答
舉報
0/150
提交
取消