簡體   English   中英

如何並行迭代Java中的集合?

[英]How to parallely iterate a collection in java?

是否可以在Java中並行迭代Collection。 我正在System.Threading.Tasks -Namespace中尋找類似c# Parallel.ForEach的東西

Java 1.8Stream API在設計時就考慮了parallelism ,因此您可以將任何Stream轉換為並行流。 例如:

 Stream.of(1,2,3,4,5,6,7).parallel().forEach(System.out::println);

實際上,每個Stream都可以轉換為並行Stream

Stream<Integer> parallel = stream.parallel();

而且Collection提供了一個返回parallelStream的方法。

Stream<Integer> parallel = Arrays.asList(1,2,3).parallelStream();

現在,這並不意味着每個操作都可以有效地並行化,而是取決於源集合的性質和您執行的任務。 看一下這個

假設您使用的是Java 8,則應使用stream 如果您不使用Java 8,那么就沒有等效的產品。

sandwichCollection.parallelStream().forEach((sandwich) -> {
    sandwich.eat();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM