배열에 특정 값이 존재하는지 확인하는 방법
이번 포스팅은 Java에서 배열에 특정 값이 존재하는지 확인할 수 있는 다양한 방법들을 소개합니다.
기본적인 방법인 반복문을 사용하거나 List로 변환 후 값을 확인 또는 Stream 클래스에서 제공하는 메서드를 사용합니다.
참고로 Stream API를 사용하기 위해서는 Java의 버전이 1.8 이상이어야 합니다.
방법 1. 반복문
가장 기본적인 문법인 반복문을 사용하여 배열에 특정 값이 존재하는지 확인할 수 있습니다.
다음 예제는 for문을 사용하여 배열의 요소를 접근 후 equals() 메서드를 사용하여 특정 값이랑 비교합니다.
equals() 메서드가 true를 반환하면 콘솔에 문구를 출력합니다.
public static void main(String args[]) {
String[] strArray = {"AB", "BC", "BCD", "CD", "CDEF"};
for(String str : strArray) {
if(str.equals("BCD")) {
System.out.println("BCD는 strArray에 존재합니다.");
}
}
}
[실행 결과]
BCD는 strArray에 존재합니다.
방법 2. List 변환 후 contains 메서드
배열을 List로 변환 후 List 클래스에서 제공하는 contains() 메서드를 사용하여 특정 값이 존재하는지 확인할 수 있습니다.
contains() 메서드는 특정 값이 List에 포함되어 있으면, true를 반환하고 그렇지 않으면 false를 반환합니다.
public static void main(String args[]) {
String[] strArray = {"AB", "BC", "BCD", "CD", "CDEF"};
List<String> strList = new ArrayList<>(Arrays.asList(strArray));
if(strList.contains("BCD")) {
System.out.println("BCD는 strArray에 존재합니다.");
}
}
[실행 결과]
BCD는 strArray에 존재합니다.
아래 포스팅은 배열을 List로 변환하는 다양한 방법들을 소개합니다.
방법 3. Stream API의 anyMatch 메서드
Java의 버전이 1.8 이상인 경우 Stream API의 anyMatch() 메서드를 사용할 수 있습니다.
배열을 스트림으로 변환 후 anyMatch() 메서드를 호출합니다.
anyMatch() 메서드에 특정 값을 체크하는 람다식 또는 메서드 참조식을 전달합니다.
다음 예제는 anyMatch() 메서드에 메서드 참조식을 전달하여 특정 값이 존재하는지 체크합니다.
public static void main(String args[]) {
String[] strArray = {"AB", "BC", "BCD", "CD", "CDEF"};
boolean isExist = Arrays.stream(strArray).anyMatch("CD"::equals);
if(isExist) {
System.out.println("CD는 strArray에 존재합니다.");
}
}
[실행 결과]
CD는 strArray에 존재합니다.
방법 4. 배열 정렬 후 binarySearch 메서드
Arrays 클래스의 parallelSort() 메서드를 사용하여 배열을 정렬 후 binarySearch() 메서드를 사용하여 특정 값이 존재하는지 확인합니다.
binarySearch() 메서드의 첫 번째 매개변수로 정렬된 배열을 전달하고 두 번째 매개변수로 특정 값을 전달합니다.
public static void main(String args[]) {
String[] strArray = { "CDEF", "AB", "BC", "CD", "BCD"};
System.out.println("정렬 전: " + Arrays.toString(strArray));
Arrays.parallelSort(strArray);
System.out.println("정렬 후: " + Arrays.toString(strArray));
int findIndex = Arrays.binarySearch(strArray, "BCD");
if(findIndex > 0) {
System.out.println("BCD는 strArray에 존재합니다.");
}
}
[실행 결과]
정렬 전: [CDEF, AB, BC, CD, BCD]
정렬 후: [AB, BC, BCD, CD, CDEF]
BCD는 strArray에 존재합니다.
방법 5. 여러 값이 존재하는지 확인하는 방법
여러 값이 존재하는지 확인하기 위해 배열을 List로 변환 후 LIst 클래스에서 제공하는 containsAll() 메서드를 사용합니다.
containsAll() 메서드에 여러 값을 가지는 List 객체를 전달합니다.
여러 값 중 하나라도 존재하면 true를 반환하고 그렇지 않으면 false를 반환합니다.
public static void main(String args[]) {
String[] strArray = {"AB", "BC", "BCD", "CD", "CDEF"};
List<String> strList = new ArrayList<>(Arrays.asList(strArray));
if(strList.containsAll(Arrays.asList("BC", "CDEF"))) {
System.out.println("BC 또는 CDEF가 strArray에 존재합니다.");
}
}
[실행 결과]
BC 또는 CDEF가 strArray에 존재합니다.
'Java > 배열' 카테고리의 다른 글
[Java]두 배열을 비교하는 방법 (1) | 2022.08.17 |
---|---|
[Java]두 배열을 합치는 방법 (0) | 2022.08.17 |
[Java]배열을 리스트로 변환(Array to List) (0) | 2022.08.16 |
[Java]배열에서 중복 제거하는 방법 (0) | 2022.05.07 |
[Java]배열을 TreeSet으로 변환 (0) | 2022.04.06 |
댓글