Java에서 배열에 특정 값이 포함되어 있는지 확인

Rashmi Patidar 2023년10월12일
  1. Java의 array.contains() 메서드를 사용하여 배열에 특정 값이 포함되어 있는지 확인
  2. Java 8 스트림을 사용하여 배열에 특정 값이 포함되어 있는지 확인
  3. 간단한 for 루프를 사용하여 배열에 특정 값이 포함되어 있는지 확인
Java에서 배열에 특정 값이 포함되어 있는지 확인

배열은 일정한 순서로 배열된 체계적인 요소 모음입니다. 내부적으로 배열 요소는 인접한 메모리 위치에 저장됩니다.

배열에서 요소를 검색하는 방법에는 여러 가지가 있습니다. 다양한 방법은 서로 다른 시간과 복잡성으로 이어집니다. 다음은 배열에서 요소를 검색하는 몇 가지 방법입니다.

Java의 array.contains() 메서드를 사용하여 배열에 특정 값이 포함되어 있는지 확인

아래 코드 블록에서 사전 정의된 값으로 arr 배열을 인스턴스화해야 합니다. 이제 검색해야 하는 문자열을 초기화합니다.

Arrays는 배열을 조작할 수 있는 다양한 메소드가 있는 클래스입니다. 이 클래스에는 정적 팩토리 메서드와 필드가 포함되어 있으며 배열의 요소를 검색하고 정렬하는 데 유용합니다.

asList() 메소드는 Arrays 클래스의 정적 메소드입니다. 매개변수에서 가져온 지정된 배열의 고정 목록을 반환합니다.

contains()List 인터페이스의 메소드입니다. 요소를 매개변수로 사용하고 이 인수를 목록에 있는 요소와 비교합니다. 지정된 요소가 목록에 있으면 부울 값 true를 반환하고 두 경우 모두 false를 반환합니다. 메소드는 지정된 요소의 유형이 이 목록과 호환되지 않으면 ClassCastException을 던지고, 지정된 값이 null이고 이 목록이 null 값을 허용하지 않는 경우 NullPointerException을 throw합니다.

package findInList;

import java.util.Arrays;

public class FindAValueInArray {
  public static void main(String[] args) {
    String[] arr = new String[] {"1", "2", "3"};
    String stringToSearch = "2";
    System.out.println(Arrays.asList(arr).contains(stringToSearch));
  }
}

위 프로그램의 출력은 아래와 같습니다.

true

Java 8 스트림을 사용하여 배열에 특정 값이 포함되어 있는지 확인

위의 코드 블록에서 처음 두 행은 첫 번째 코드의 행과 유사합니다. 여기에서 Arrays 클래스의 stream 메서드를 사용하여 배열 스트림을 생성했습니다. 이 메서드는 지정된 배열을 소스로 사용하여 순차 스트림을 반환합니다. Stream 클래스에는 anyMatch()라는 함수가 있습니다. 이 메서드는 predicate를 입력으로 사용합니다.

Predicate는 단일 인수 함수를 사용하고 Boolean 값을 반환하는 기능적 인터페이스입니다. 여기에는 주어진 인수에 대한 술어를 평가하는 단일 test(T t) 메소드가 포함됩니다. 스트림의 요소가 제공된 술어와 일치하면 true를 반환하고, 그렇지 않으면 false 값을 반환합니다.

package findInList;

import java.util.Arrays;

public class FindAValueInArray {
  public static void main(String[] args) {
    String[] arr = new String[] {"1", "2", "3"};
    String stringToSearch = "2";
    System.out.println(Arrays.stream(arr).anyMatch(s -> s.equals(stringToSearch)));
  }
}

위 코드의 출력은 첫 번째 코드와 동일합니다.

간단한 for 루프를 사용하여 배열에 특정 값이 포함되어 있는지 확인

아래 코드 블록에서 전통적인 for 루프를 사용하여 배열을 반복합니다. for 루프는 expression1에서 카운터 값이 0으로 초기화됩니다. 이제 카운터 값은 배열의 길이와 비교됩니다. 카운터 변수가 정의된 배열의 길이보다 작으면 코드 블록 내부의 명령문이 실행됩니다.

for 블록 내에서 String 클래스의 equals 메서드를 사용하여 배열의 각 요소를 비교합니다. 상태가 true로 평가되면 break 키워드가 for 루프의 실행을 중단하는 데 사용됩니다. 발견되지 않으면 코드는 배열의 요소 수만큼 실행됩니다.

루프 후 print 문은 요소가 목록에서 검색되면 true로 상태 변수의 값을 평가하고, 그렇지 않으면 false 값을 인쇄합니다.

package findInList;

public class FindAValueInArray {
  public static void main(String[] args) {
    String[] arr = new String[] {"1", "2", "3"};
    String stringToSearch = "2";
    boolean status = false;
    for (int i = 0; i < arr.length; i++) {
      status = arr[i].equals(stringToSearch);
      if (status)
        break;
    }
    System.out.println(status);
  }
}

출력은 다시 첫 번째 코드에 제공된 것과 동일합니다.

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

관련 문장 - Java Array