Java Stream findFirst() Example

1. Introduction

This tutorial discusses how to use the findFirst() method in the Java Stream API. findFirst() is a terminal operation that retrieves the first element of a stream, returning an Optional to handle cases where the stream may be empty.

Key Points

1. findFirst() returns the first element of the stream as an Optional.

2. It is often used in parallel streams to control non-deterministic behaviour.

3. findFirst() is particularly useful when you need a deterministic result from a stream that may have been filtered or mapped.

2. Program Steps

1. Create a Stream of elements.

2. Apply findFirst() to retrieve the first element.

3. Check if the element exists using Optional and perform an action.

3. Code Program

import java.util.Optional;

public class StreamFindFirstExample {

    public static void main(String[] args) {
        // Stream of numbers
        Stream<Integer> numberStream = Stream.of(7, 5, 3, 9, 11);

        // Using findFirst to get the first element
        Optional<Integer> firstNumber = numberStream.findFirst();

        // Check if an element is present and display it
        if (firstNumber.isPresent()) {
            System.out.println("The first number is: " + firstNumber.get());
        } else {
            System.out.println("No element found");


The first number is: 7


1. Stream.of(7, 5, 3, 9, 11) creates a stream of integers.

2. numberStream.findFirst() applies the findFirst() operation to retrieve the first element of the stream.

3. firstNumber.isPresent() checks whether the Optional contains a value.

4. firstNumber.get() retrieves the value from the Optional if it is present.