How to Use Java 8 Stream API with Practical Examples

11/28/20232 min read

MacBook Pro with images of computer language codes
MacBook Pro with images of computer language codes

Introduction to Java 8 Stream API

The Java 8 Stream API is a powerful tool that allows developers to process collections of objects in a functional and declarative way. It provides a set of high-level operations that can be chained together to perform complex data manipulations efficiently.

Benefits of Using Stream API

Using the Stream API has several advantages over traditional loops and iterations:

  • Conciseness: Stream API allows you to write code in a more concise and expressive manner.
  • Parallel Execution: Stream API can automatically parallelize the execution of operations, taking advantage of multi-core processors.
  • Lazy Evaluation: Stream operations are evaluated on-demand, which means that intermediate operations are only executed when necessary.
  • Code Reusability: Stream API encourages the use of functional programming techniques, making your code more reusable and modular.

Working with Stream API

Let's dive into some practical examples to understand how to use the Stream API:

Example 1: Filtering Elements

Suppose we have a list of integers and we want to filter out the even numbers:


List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> evenNumbers = numbers.stream()
                                    .filter(n -> n % 2 == 0)
                                    .collect(Collectors.toList());

Example 2: Mapping Elements

We can also transform elements using the map operation. Let's convert a list of strings to uppercase:


List<String> names = Arrays.asList("John", "Alice", "Bob");
List<String> upperCaseNames = names.stream()
                                     .map(String::toUpperCase)
                                     .collect(Collectors.toList());

Example 3: Reducing Elements

The reduce operation allows us to combine all elements of a stream into a single value. Let's find the sum of a list of integers:


List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
                 .reduce(0, Integer::sum);

Conclusion

The Java 8 Stream API is a powerful tool for processing collections of objects. It provides a more concise and expressive way to perform complex data manipulations. By leveraging the benefits of parallel execution, lazy evaluation, and code reusability, developers can write more efficient and maintainable code. With the practical examples provided, you should now have a good understanding of how to use the Stream API in your Java projects.