Streams API

The Streams API in Java provides a functional approach to processing sequences of elements. This tutorial will teach you how to use the Streams API.

Creating a Stream

To create a stream, use the Stream interface:


import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        List names = Arrays.asList("Alice", "Bob", "Charlie");
        Stream stream = names.stream();
        stream.forEach(System.out::println);
    }
}
      

Filtering a Stream

You can filter elements in a stream using the filter method:


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

public class Main {
    public static void main(String[] args) {
        List names = Arrays.asList("Alice", "Bob", "Charlie");
        List filteredNames = names.stream()
                                           .filter(name -> name.startsWith("A"))
                                           .collect(Collectors.toList());
        filteredNames.forEach(System.out::println);
    }
}
      

Mapping a Stream

You can transform elements in a stream using the map method:


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

public class Main {
    public static void main(String[] args) {
        List names = Arrays.asList("Alice", "Bob", "Charlie");
        List upperCaseNames = names.stream()
                                           .map(String::toUpperCase)
                                           .collect(Collectors.toList());
        upperCaseNames.forEach(System.out::println);
    }
}
      

Reducing a Stream

You can combine elements in a stream using the reduce method:


import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List numbers = Arrays.asList(1, 2, 3, 4, 5);
        int sum = numbers.stream()
                         .reduce(0, (a, b) -> a + b);
        System.out.println("Sum: " + sum);
    }
}
      

Continue exploring our intermediate tutorials to learn more about Java programming.

Scroll to Top