1.Arrays 클래스
=>binarySearch 메서드: 제어 검색(정렬이 된 상태에서 검색을 수행)중에서 이분 검색을 수행해서 데이터가 존재하면
그 데이터의 위치를 리턴하고 존재하지 않으면 음수를 리턴하는 메서드
음수중에서도 -1을 많이 사용하는 편.
==>이진법에서 1로 다 채운 수
-1을 읽을 일이 생기면 컴퓨터에서는 엄청 높은 수. 양수만 사용하는 경우면 -1은 엄청 높은 수, 양수 음수 둘 다 사용하면 -1일 '수도'있음
package java_1025;
import java.util.Arrays;
//import java.util.Comparator;
public class JavaArraysEx {
public static void main(String[] args) {
//배열 생성
String[] singers = {"장원영", "카리나", "지젤", "민지", "태연", "아이유", "수지"};
//이분 검색
int result =Arrays.binarySearch(singers, "수지");
System.out.println(result);//있는데도 음수가 나오는 이유? sort를 하지 않아서 잘못된 결과가 나옴
//데이터정렬
Arrays.sort(singers);
System.out.println(Arrays.toString(singers));
result=Arrays.binarySearch(singers, "수지");
if(result>=0) {
System.out.printf("%s는 %d 번째 존재\n", "수지", result+1);
}else {
System.out.printf("%s는 존재하지 않음\n","수지");
}
// Arrays.sort(singers,new Comparator<String>() {
// @Override
// public int compare(String o1, String o2) {
// return o1.compareTo(o2);
// }
// });
// System.out.println(Arrays.toString(singers));
}
}
-5
[민지, 수지, 아이유, 장원영, 지젤, 카리나, 태연]
수지는 2 번째 존재
BinarySearch는 정렬이 전제조건. 정렬하지 않으면 값이 있어도 -1이 나올 수도 있다
배열의 크기가 크지 않으니 result값이 -1이면 없다는 뜻. 그래서 result>=0이란 조건을 검
프로그래머가 아닌 사용자는 0번째를 이해하지 못한다. 그래서 +1을 해서 이해하기 쉽게 만들어주는 것
'JAVA' 카테고리의 다른 글
221025 날짜 (0) | 2022.10.25 |
---|---|
221025 Fibonacci수열과 재귀/재귀사용 x (0) | 2022.10.25 |
221024 Array 검색(Search) (0) | 2022.10.24 |
221024 Array클래스, compareTO(), Comparable 인터페이스 (0) | 2022.10.24 |
221024 Array클래스 (0) | 2022.10.24 |