Language/Java

[Java] 자바 API 클래스 - Arrays 클래스

재은초 2024. 4. 13. 22:07
반응형

java.util 패키지

  • java.util 패키지에는 프로그램을 개발하는 데 사용할 수 있는 유용한 유틸리티 클래스가 다수 포함되어 있다.
  • java.lang 패키지 다음으로 가장 많이 사용되는 패키지가 java.util 패키지다. 하지만 import 문을 사용하지 않아도 바로 사용할 수 있는 java.lang 패키지와는 달리 java.util 패키지는 import 문으로 패키지를 불러오고 나서야 클래스 이름만으로 사용할 수 있다.

 

java.util.Arrays 클래스

  • Arrays 클래스의 모든 메소드는 클래스 메소드(static method)이므로, 객체를 생성하지 않고도 바로 사용할 수 있다.
  • Arrays 클래스는 java.util 패키지에 포함되므로, 반드시 import 문으로 java.util 패키지를 불러오고 나서 사용해야 한다.

binarySearch() 메소드

  • binarySearch() 메소드는 전달받은 배열에서 특정 객체의 위치를 이진 검색 알고리즘을 사용하여 검색한 후, 해당 위치를 반환한다.
  • binarySearch() 메소드는 이진 검색 알고리즘을 사용하므로, 매개변수로 전달되는 배열이 sort() 메소드 등을 사용하여 미리 정렬되어 있어야만 제대로 동작한다.
int[] arr = new int[1000];

for(int i = 0; i < arr.length; i++) {
    arr[i] = i;
}

System.out.println(Arrays.binarySearch(arr, 437));        // 437

copyOf() 메소드

  • copyOf() 메소드는 전달받은 배열의 특정 길이만큼을 새로운 배열로 복사하여 반환한다.
  • copyOf() 메소드는 첫 번째 매개변수로 원본 배열을 전달받고, 두 번째 매개변수로 원본 배열에서 새로운 배열로 복사할 요소의 개수와 원본 배열과 같은 타입의 복사된 새로운 배열을 반환한다. 이때 새로운 배열의 길이가 원본 배열보다 길면, 나머지 요소는 배열 요소의 타입에 맞게 해당 타입의 기본값으로 채워진다.
int[] arr1 = {1, 2, 3, 4, 5};

int[] arr2 = Arrays.copyOf(arr1, 3);       // 배열 arr1의 첫 번째 배열 요소부터 3개의 요소를 복사
for (int i = 0; i < arr2.length; i++) {
    System.out.print(arr2[i] + " ");
}

int[] arr3 = Arrays.copyOf(arr1, 10);      // 배열 arr1에서 10개의 배열 요소를 복사
for (int i = 0; i < arr3.length; i++) {    // 배열 arr1의 길이가 5밖에 안되므로
    System.out.print(arr3[i] + " ");       // 배열 arr3의 나머지 배열 요소에는 int형의 기본값 0으로
}

>> 1 2 3 
>> 1 2 3 4 5 0 0 0 0 0

copyOfRange() 메소드

  • copyOfRange() 메소드는 전달받은 배열의 특정 범위에 해당하는 요소만을 새로운 배열로 복사하여 반환한다.
  • copyOfRange() 메소드는 첫 번째 매개변수로 복사의 대상이 될 원본 배열을 전달고, 두 번째 매개변수로는 원본 배열에서 복사할 시작 인덱스를, 세 번째 매개변수로는 전달된 인덱스 바로 전까지의 배열 요소까지만 복사된다.
int[] arr1 = {1, 2, 3, 4, 5};

int[] arr2 = Arrays.copyOfRange(arr1, 2, 4);
for (int i = 0; i < arr2.length; i++) {
    System.out.print(arr2[i] + " ");
}

>> 3 4

fill() 메소드

  • fill() 메소드는 전달받은 배열의 모든 요소를 특정 값으로 초기화해 준다.
  • fill() 메소드는 첫 번째 매개변수로 초기화할 배열을 전달받고, 두 번째 매개변수로 초기값을 전달받는다.
  • fill() 메소드는 전달받은 원본 배열의 값을 변경한다.
int[] arr = new int[10];

Arrays.fill(arr, 7);
for (int i = 0; i < arr.length; i++) {
    System.out.print(arr[i] + " ");
}

>> 7 7 7 7 7 7 7 7 7 7

sort() 메소드

  • sort() 메소드는 전달받은 배열의 모든 요소를 오름차순으로 정렬한다.
  • sort() 메소드는 매개변수로 정렬할 배열을 전달받으며, 따라서 이 메소드는 전달받은 원본 배열의 순서를 변경하게 된다.

Arrays 메소드들

 

Reference

반응형