[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("홀수를 찾을 수 없음");
        }
    }
}

코드 설명

  1. 정수 배열을 Arrays.stream() 메서드를 사용하여 Stream으로 변환합니다.
  2. filter() 메서드를 사용하여 홀수만 포함된 Stream을 생성합니다.
  3. findAny() 메서드를 호출하여 임의의 홀수 요소를 찾습니다.
  4. OptionalInt 객체를 반환하며, 결과값이 존재하면 해당 값을 출력합니다.

결과

실행 결과로 다음과 같은 출력을 얻을 수 있습니다.

임의의 홀수: 9

결론

findAny() 메서드는 Stream에서 임의의 요소를 찾는 데 사용될 수 있는 유용한 메서드입니다. 주어진 조건에 맞는 요소가 있으면 해당 요소를 반환하고, 없으면 Optional 객체의 비어있는 값이 반환됩니다. 이를 통해 간결하고 효율적인 코드를 작성할 수 있습니다.

참고 자료