JAVA

[Java] Array 클래스

jjuya 개발 기록 2024. 7. 20. 10:39

Java.Util 패키지 Array클래스

sort(), 배열 정렬

int[] numbers = {5, 3, 8, 1, 2};

// 기본 오름차순
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers));
// [1, 2, 3, 5, 8]
// =============================================


// 내림차순
Arrays.sort(arr, Collections.reverseOrder());
System.out.println(Arrays.toString(numbers));
// [8, 5, 3, 2, 1]
// =============================================

// 내림차순 Comparator 직접구현
Arrays.sort(arr, new Comparator<Integer>() {
    @Override
    public int compare(Integer i1, Integer i2) {
        return i2 - i1;
    }
});
System.out.println(Arrays.toString(numbers));

// =============================================

// Lambda를 이용한 내림차순
Arrays.sort(arr, (i1, i2) -> i2 - i1);
System.out.println(Arrays.toString(numbers));

 

copyOf() 와 copyOdRange(), 배열 복사

int[] original = {1, 2, 3, 4, 5};
int[] copy = Arrays.copyOf(original, original.length);
int[] partialCopy = Arrays.copyOfRange(original, 1, 4);

System.out.println(Arrays.toString(original));
System.out.println(Arrays.toString(copy));
System.out.println(Arrays.toString(partialCopy));

// [1, 2, 3, 4, 5]
// [1, 2, 3, 4, 5]
// [2, 3, 4]

 

eauls(), 배열 비교

int[] array1 = {1, 2, 3};
int[] array2 = {1, 2, 3};
int[] array3 = {3, 2, 1};

boolean isEqual1 = Arrays.equals(array1, array2);
boolean isEqual2 = Arrays.equals(array1, array3);

System.out.println(isEqual1); // true
System.out.println(isEqual2); // false

 

binarySearch(), 이진 검색

  • 정렬이 되어있어야함!
  • 중간값을 확인해서 찾으려고 하는 N보다 작으면 왼쪽, N보다 크면 오른쪽을 탐색함 
int[] numbers = {1, 2, 3, 4, 5};
int index = Arrays.binarySearch(numbers, 3);
System.out.println(index);
// 3의 index번호 출력 - 2