java.util 패키지에는 프로그램을 개발하는 데 사용할 수 있는 유용한 유틸리티 클래스가 다수 포함되어 있습니다.
실제로 java.lang 패키지 다음으로 가장 많이 사용되는 패키지가 java.util 패키지입니다.
하지만 import 문을 사용하지 않아도 바로 사용할 수 있는 java.lang 패키지와는 달리 java.util 패키지는 import 문으로 패키지를 불러오고 나서야 클래스 이름만으로 사용할 수 있습니다.
Arrays 클래스에는 배열을 다루기 위한 다양한 메소드가 포함되어 있습니다.
binarySearch() 메소드는 전달받은 배열에서 특정 객체의 위치를 이진 검색 알고리즘을 사용하여 검색한 후, 해당 위치를 반환합니다.
이 메소드는 이진 검색 알고리즘을 사용하므로, 매개변수로 전달되는 배열이 sort() 메소드 등을 사용하여 미리 정렬되어 있어야만 제대로 동작합니다.
System.out.println(Arrays.binarySearch(arr, 5));
sort() 메소드는 전달받은 배열의 모든 요소를 오름차순으로 정렬합니다.
int[] arr = {5, 3, 4, 1, 2};
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
Arrays.sort(arr, Collections.reverseOrder());
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer i1, Integer i2) {
if(i1 > i2) return 1; // 오름 차순
// if(i1 < i2) return 1; // 내림 차순
}
});
임의의 10개의 과일이름 입력 후 길이 순으로 정렬하기. 길이가 같으면 사전순으로 정렬하기
👉 **compareTo()** 함수는 두개의 값을 비교하여 int 값으로 반환해주는 함수이다.public static void main(String[] args) {
String[] fruit = {"Kiwi", "Orange", "Apple", "Banana", "Melon",
"Mango", "Watermelon", "Cherry", "Plum", "Peach"};
Arrays.sort(fruit, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if(o1.length() > o2.length()) return 1; // 첫번째가 두번째 보다 길이가 길면 정렬 조건
else {
if(o1.length() == o2.length()) {
return o1.compareTo(o2); // 두번째가 사전순서상 앞에 있으면 양수
}
return -1; // 현 상태 유지
}
}
});
System.out.println(Arrays.toString(fruit));
}
List<String> list = Arrays.asList(arr);
일반 배열을 ArrayList로 변환 한다.
Scanner sc = new Scanner(System.in);
System.out.print("배열의 갯수 : ");
int num = sc.nextInt();
int[] arr = new int[num];
System.out.println("찾을 수를 입력 : ");
int key = sc.nextInt();
for(int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * num) + 1;
}
Arrays.sort(arr);
for(int val : arr) System.out.print(val + " ");
System.out.println();
int result = Arrays.binarySearch(arr, key);
if(result >= 0) System.out.println(result);