Stream operations and transformations on collections

Stream Operations and Transformations on Collections in Java

Java 8 introduced the Stream API, which provides a modern and efficient way to process collections (like List, Set, etc.). Stream operations help to filter, transform, sort, group, and reduce data in a clean and functional style.


Two Types of Stream Operations

Type Description
Intermediate Returns a new stream; does not perform processing immediately (lazy).
Terminal Produces a result or a side-effect; triggers the processing of the stream.

Common Stream Operations

Operation Type Description
filter() Intermediate Selects elements matching a condition
map() Intermediate Transforms elements
sorted() Intermediate Sorts elements
distinct() Intermediate Removes duplicates
collect() Terminal Collects results into a collection (e.g., List, Set)
forEach() Terminal Performs an action for each element
count() Terminal Counts number of elements
reduce() Terminal Reduces elements to a single result (e.g., sum, min, max)
iimport java.util.*;
import java.util.stream.Collectors;

public class StreamExample {
    public static void main(String[] args) {
        List<String> students = Arrays.asList("Anil", "Mahesh", "LotusJavaPrince", "Mahesh", "Datta");

        // Stream operations
        List<String> processedStudents = students.stream()
                .filter(name -> name.length() > 5)                 // Filter names longer than 5 characters
                .map(String::toUpperCase)                          // Convert to uppercase
                .distinct()                                        // Remove duplicates
                .sorted()                                          // Sort alphabetically
                .collect(Collectors.toList());                     // Collect to list

        // Output the transformed list
        System.out.println("Processed Students:");
        processedStudents.forEach(System.out::println);
    }
}

/*
LOTUSJAVAPRINCE
MAHESH
*/
Scroll to Top