Java/배열

[Java]배열에 특정 값이 존재하는지 확인하는 방법

DevStory 2022. 8. 16.

배열에 특정 값이 존재하는지 확인하는 방법

이번 포스팅은 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로 변환하는 다양한 방법들을 소개합니다.

 

[Java]배열을 리스트로 변환(Array to List)

배열을 리스트로 변환 이번 포스팅은 Java에서 배열을 리스트로 변환하는 다양한 방법들을 소개합니다. 고전적인 방법으로 반복문을 사용하거나 Arrays, Collections, Stream 클래스에서 제공하는 메서

developer-talk.tistory.com


방법 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에 존재합니다.
반응형

댓글