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.