[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’라는 값을 출력하게 됩니다. 만약 조건을 만족하는 요소가 없다면, ‘조건을 만족하는 요소가 없습니다.’라는 메시지가 출력됩니다.
참고자료:
- Java 8 API 문서: Optional
- Baeldung 블로그 포스트: Java 8 Optional in Depth
- JavaTpoint 튜토리얼: Java 8 Optional Class