Giả sử chúng ta có một Collection
như thế này:Java 8 dòng và parallelStream
Set<Set<Integer>> set = Collections.newSetFromMap(new ConcurrentHashMap<>());
for (int i = 0; i < 10; i++) {
Set<Integer> subSet = Collections.newSetFromMap(new ConcurrentHashMap<>());
subSet.add(1 + (i * 5));
subSet.add(2 + (i * 5));
subSet.add(3 + (i * 5));
subSet.add(4 + (i * 5));
subSet.add(5 + (i * 5));
set.add(subSet);
}
và để xử lý nó:
set.stream().forEach(subSet -> subSet.stream().forEach(System.out::println));
hoặc
set.parallelStream().forEach(subSet -> subSet.stream().forEach(System.out::println));
hoặc
set.stream().forEach(subSet -> subSet.parallelStream().forEach(System.out::println));
hoặc
set.parallelStream().forEach(subSet -> subSet.parallelStream().forEach(System.out::println));
như vậy, ai đó có thể xin vui lòng giải thích cho tôi:
- sự khác biệt giữa chúng là gì?
- Cái nào tốt hơn? nhanh hơn? và an toàn hơn?
- Phương pháp nào phù hợp cho bộ sưu tập lớn?
- Điều nào tốt khi chúng tôi muốn áp dụng các quy trình nặng cho mỗi mục?
Cảm ơn bạn rất nhiều, lời giải thích rất hay :) – FaNaJ