[java] findFirst() 메서드를 이용한 첫 번째 요소 찾기 방법

Java 8부터 Collection 인터페이스에 추가된 findFirst() 메서드는 스트림에서 첫 번째 요소를 찾는 데 사용됩니다. 이를 통해 스트림에서 원하는 조건을 만족하는 첫 번째 요소를 간단하게 찾을 수 있습니다.

다음은 findFirst() 메서드를 이용하여 첫 번째 요소를 찾는 방법에 대한 예시입니다:

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

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("John", "Alice", "Bob", "Dave", "Eve");

        Optional<String> firstElement = names.stream()
                .filter(name -> name.startsWith("A"))
                .findFirst();
        
        if (firstElement.isPresent()) {
            System.out.println("첫 번째로 'A'로 시작하는 요소: " + firstElement.get());
        } else {
            System.out.println("조건을 만족하는 요소가 없습니다.");
        }
    }
}

위의 예시에서는 문자열 리스트에서 ‘A’로 시작하는 첫 번째 요소를 찾고 출력합니다.

Optional<String> firstElement = names.stream()
        .filter(name -> name.startsWith("A"))
        .findFirst();

첫 번째 요소를 찾기 위해 findFirst() 메서드를 사용하고, filter() 메서드를 통해 조건을 설정합니다. filter() 메서드는 Predicate를 매개변수로 받으며, 여기서는 name이 ‘A’로 시작하는지 검사합니다.

결과를 받기 위해 Optional 클래스를 사용합니다. Optional은 Java 8에서 도입된 클래스로, null을 포함할 수 있는 값을 감싸고 추가적인 메서드를 제공합니다. Optional.isPresent() 메서드를 통해 값이 존재하는지 확인하고, Optional.get() 메서드를 사용하여 값에 접근할 수 있습니다.

위의 예시를 실행하면, ‘Alice’라는 값을 출력하게 됩니다. 만약 조건을 만족하는 요소가 없다면, ‘조건을 만족하는 요소가 없습니다.’라는 메시지가 출력됩니다.

참고자료: