Java에서 배열에 특정 값이 포함되어 있는지 확인
-
Java의
array.contains()
메서드를 사용하여 배열에 특정 값이 포함되어 있는지 확인 - Java 8 스트림을 사용하여 배열에 특정 값이 포함되어 있는지 확인
-
간단한
for
루프를 사용하여 배열에 특정 값이 포함되어 있는지 확인
배열은 일정한 순서로 배열된 체계적인 요소 모음입니다. 내부적으로 배열 요소는 인접한 메모리 위치에 저장됩니다.
배열에서 요소를 검색하는 방법에는 여러 가지가 있습니다. 다양한 방법은 서로 다른 시간과 복잡성으로 이어집니다. 다음은 배열에서 요소를 검색하는 몇 가지 방법입니다.
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 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