[java] findAny() 메서드를 이용한 임의의 요소 찾기 방법
Java 8에서 추가된 Stream
클래스는 요소의 컬렉션을 처리하는데 매우 편리한 메서드들을 제공합니다. 그 중 하나인 findAny()
메서드는 Stream
에서 임의의 요소를 찾는데 유용하게 사용될 수 있습니다.
문제 상황
다음과 같은 상황을 가정해봅시다. 주어진 정수 배열에서 홀수를 찾아야 하고 어떤 값을 찾더라도 상관없는 경우입니다. 이러한 경우에 findAny()
메서드를 사용할 수 있습니다.
예시 코드
다음은 주어진 배열에서 임의의 홀수를 찾기 위해 findAny()
메서드를 사용하는 예시 코드입니다.
import java.util.Arrays;
import java.util.OptionalInt;
public class FindAnyExample {
public static void main(String[] args) {
int[] numbers = {2, 4, 6, 8, 9, 10, 12, 14, 15};
OptionalInt result = Arrays.stream(numbers)
.filter(n -> n % 2 != 0)
.findAny();
if (result.isPresent()) {
System.out.println("임의의 홀수: " + result.getAsInt());
} else {
System.out.println("홀수를 찾을 수 없음");
}
}
}
코드 설명
- 정수 배열을
Arrays.stream()
메서드를 사용하여Stream
으로 변환합니다. filter()
메서드를 사용하여 홀수만 포함된Stream
을 생성합니다.findAny()
메서드를 호출하여 임의의 홀수 요소를 찾습니다.OptionalInt
객체를 반환하며, 결과값이 존재하면 해당 값을 출력합니다.
결과
실행 결과로 다음과 같은 출력을 얻을 수 있습니다.
임의의 홀수: 9
결론
findAny()
메서드는 Stream
에서 임의의 요소를 찾는 데 사용될 수 있는 유용한 메서드입니다. 주어진 조건에 맞는 요소가 있으면 해당 요소를 반환하고, 없으면 Optional
객체의 비어있는 값이 반환됩니다. 이를 통해 간결하고 효율적인 코드를 작성할 수 있습니다.