Junior — Middle
How can data be processed in parallel using Stream in Java?
sobes.tech AI
Answer from AI
In Java, to organize parallel data processing using Stream, a parallel stream is used. It allows automatically parallelizing operations on collection elements using the ForkJoinPool thread pool.
To create a parallel stream, you can call the parallelStream() method on a collection or convert a sequential stream to a parallel one using parallel():
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// Creating a parallel stream from a collection
int sum = numbers.parallelStream()
.mapToInt(Integer::intValue)
.sum();
// Or converting a sequential stream to a parallel one
int sum2 = numbers.stream()
.parallel()
.mapToInt(Integer::intValue)
.sum();
Parallel streams automatically split the source data into parts and process them in multiple threads, which can speed up execution with large data volumes and resource-intensive operations. However, it is important to consider the overhead of thread creation and synchronization, so for small data sets or simple operations, parallelism may be inefficient.