Java 배열에서 특정값 찾기

Java 배열에서 특정 값을 포함하는지 찾는 방법에는 여러 가지 방법이 있습니다. 이 글에서는 이러한 방법들을 살펴보겠습니다.

1. for 루프를 사용한 간단한 반복

가장 간단하고 편리한 방법 중 하나는 배열이 특정 값을 포함하는지 확인하는 것입니다. 이를 위해 for 루프를 사용하고 equals() 메서드를 사용하여 배열 요소가 주어진 값과 동일한지 확인합니다.

String[] vowels = { "A", "I", "E", "O", "U" };

// 배열 요소를 단순하게 반복
for (String s : vowels) {
    if ("E".equals(s)) {
        System.out.println("E는 모음 목록에 있습니다.");
    }
}

결과:

E는 모음 목록에 있습니다.

2. List contains() 메서드 사용

배열의 목록 표현을 얻기 위해 Arrays 클래스를 사용할 수 있으며, 그런 다음 contains() 메서드를 사용하여 배열이 특정 값을 포함하는지 확인할 수 있습니다.

String[] vowels = { "A", "I", "E", "O", "U" };
List<String> vowelsList = Arrays.asList(vowels);

boolean containsU = vowelsList.contains("U");
boolean containsX = vowelsList.contains("X");

System.out.println("U를 포함하고 있음: " + containsU);
System.out.println("X를 포함하고 있음: " + containsX);

결과:

U를 포함하고 있음: true
X를 포함하고 있음: false

3. Stream anyMatch() 메서드 사용

Java 8 이상을 사용하는 경우 배열에서 스트림을 생성할 수 있으며, 람다 표현식과 함께 anyMatch() 메서드를 사용하여 주어진 값을 포함하는지 확인할 수 있습니다.

String[] vowels = { "A", "I", "E", "O", "U" };

boolean containsO = Arrays.stream(vowels).anyMatch("O"::equals);
boolean containsX = Arrays.stream(vowels).anyMatch("X"::equals);

System.out.println("O를 포함하고 있음: " + containsO);
System.out.println("X를 포함하고 있음: " + containsX);

결과:

O를 포함하고 있음: true
X를 포함하고 있음: false

4. 정렬된 배열을 위한 Arrays binarySearch() 메서드 사용

배열이 정렬되어 있는 경우, Arrays binarySearch() 메서드를 사용하여 배열이 주어진 값을 포함하는지 확인할 수 있습니다.

String[] vowels = { "A", "I", "E", "O", "U" };

System.out.println("정렬되지 않은 배열 = " + Arrays.toString(vowels));

Arrays.parallelSort(vowels);

System.out.println("정렬된 배열 = " + Arrays.toString(vowels));

int index = Arrays.binarySearch(vowels, "X");

if (index < 0) {
    System.out.println("X는 배열에 없습니다.");
} else {
    System.out.println("X는 배열에 있습니다.");
}

결과:

정렬되지 않은 배열 = [A, I, E, O, U]
정렬된 배열 = [A, E, I, O, U]
X는 배열에 없습니다.

배열이 여러 값을 포함하는지 확인

배열이 여러 값을 포함하는지 확인하려면 배열을 목록으로 변환한 다음 containsAll() 메서드를 사용하는 방법이 있습니다.

String[] vowels = { "A", "I", "E", "O", "U" };
String[] subset = { "E", "U" };

boolean foundAll = Arrays.asList(vowels).containsAll(Arrays.asList(subset));

System.out.println("vowels는 subset의 모든 요소를 포함: " + foundAll);

결과:

vowels는 subset의 모든 요소를 포함: true

이런 방법들을 사용하여 Java 배열이 특정 값을 포함하는지 확인할 수 있습니다. 다양한 상황에 따라 가장 적합한 방법을 선택할 수 있습니다.

Leave a Comment