Java HashSet parallelStream() Method

The HashSet.parallelStream() method in Java is used to create a parallel Stream with the elements of the HashSet as its source. This guide will cover the method’s usage, explain how it works, and provide examples to demonstrate its functionality.

Table of Contents

  1. Introduction
  2. parallelStream Method Syntax
  3. Examples
    • Creating a Parallel Stream from a HashSet
    • Using Parallel Stream for Concurrent Processing
    • Collecting Parallel Stream Results into a List
  4. Conclusion

Introduction

The HashSet.parallelStream() method is a member of the HashSet class in Java. It allows you to create a parallel Stream from the elements in the HashSet. Parallel streams enable parallel processing of data, allowing operations to be performed concurrently for better performance on multi-core processors.

parallelStream Method Syntax

The syntax for the parallelStream method is as follows:

public Stream<E> parallelStream()
  • The method does not take any parameters.
  • The method returns a Stream<E> representing a parallel stream of elements in the HashSet.

Examples

Creating a Parallel Stream from a HashSet

The parallelStream method can be used to create a parallel Stream from the elements in a HashSet.

Example

import java.util.HashSet;
import java.util.stream.Stream;

public class ParallelStreamExample {
    public static void main(String[] args) {
        // Creating a HashSet of Strings
        HashSet<String> languages = new HashSet<>();

        // Adding elements to the HashSet
        languages.add("Java");
        languages.add("Python");
        languages.add("C");

        // Creating a parallel Stream from the HashSet
        Stream<String> parallelStream = languages.parallelStream();

        // Printing the elements in the parallel Stream
        System.out.println("Elements in the parallel Stream:");
        parallelStream.forEach(System.out::println);
    }
}

Output:

Elements in the parallel Stream:
Java
C
Python

Using Parallel Stream for Concurrent Processing

You can use the parallelStream method to perform operations on the elements concurrently.

Example

import java.util.HashSet;

public class ConcurrentProcessingExample {
    public static void main(String[] args) {
        // Creating a HashSet of Strings
        HashSet<String> languages = new HashSet<>();

        // Adding elements to the HashSet
        languages.add("Java");
        languages.add("Python");
        languages.add("C");
        languages.add("JavaScript");

        // Using parallel Stream to process elements concurrently
        languages.parallelStream()
                 .filter(lang -> lang.startsWith("J"))
                 .forEach(lang -> System.out.println(Thread.currentThread().getName() + " processed: " + lang));
    }
}

Output:

ForkJoinPool.commonPool-worker-1 processed: Java
ForkJoinPool.commonPool-worker-3 processed: JavaScript

Collecting Parallel Stream Results into a List

You can use the parallelStream method to create a parallel Stream, apply operations, and then collect the results into a list.

Example

import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;

public class CollectParallelStreamExample {
    public static void main(String[] args) {
        // Creating a HashSet of Strings
        HashSet<String> languages = new HashSet<>();

        // Adding elements to the HashSet
        languages.add("Java");
        languages.add("Python");
        languages.add("C");
        languages.add("JavaScript");

        // Creating a parallel Stream from the HashSet and collecting the results into a list
        List<String> filteredList = languages.parallelStream()
                                             .filter(lang -> lang.startsWith("J"))
                                             .collect(Collectors.toList());

        // Printing the collected list
        System.out.println("Collected list from the parallel Stream:");
        filteredList.forEach(System.out::println);
    }
}

Output:

Collected list from the parallel Stream:
Java
JavaScript

Conclusion

The HashSet.parallelStream() method in Java provides a way to create a parallel Stream from the elements in a HashSet. By understanding how to use this method, you can leverage parallel processing to perform operations concurrently, taking advantage of multi-core processors for better performance. Parallel streams offer a powerful way to process data in parallel, making your code more efficient and scalable.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top