JAVA

Java Arrays 클래스

아뵹젼 2023. 2. 9.

알고리즘을 풀 때 입출력 구현부가 길어지는 것이 너무 불편했다.

파이썬처럼 쉽게 구현할 수 없을까 싶어 찾아보다가 Arrays 의 몇가지 함수들을 정리해보자 한다.

 

Arrays

Arrays 클래스에는 배열을 유용하게 다룰 수 있는 메서드들이 정의되어 있다. 

정의된 메서드는 모두 static 메서드이다.

 

 

배열 채우기

int[] arr = new int[10];
Arrays.fill(arr, Integer.MAX_VALUE);
  • fill() : 배열의 모든 요소를 지정한 값으로 채운다. => 초기값을 지정해줄 때 매우 편하다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] tmp = br.readLine().toCharArray();
int[] arr = new int[tmp.length];
Arrays.setAll(arr, i->tmp[i]-'0');
  • setAll() : 배열을 채우는 데 사용할 함수형 인터페이스를 매개변수로 받는다. 함수형 인터페이스를 구현한 객체를 지정하거나 람다식을 지정해야 한다. => 배열의 모든 요소에 형변환을 해준다거나, 공통으로 연산을 해줄 때 매우 편리하다

 

배열 복사

int[] arr = { 0, 1, 2, 3, 4 };

int[] arr2 = Arrays.copyOf(arr, arr.length); // arr2 = [0,1,2,3,4]
int[] arr3 = Arrays.copyOf(arr, 3); // arr3 = [0,1,2]
int[] arr4 = Arrays.copyOfRange(arr, 2, 4); // arr4 = [2,3]
int[] arr5 = Arrays.copyOfRange(arr, 0, 7); // arr5 = [0,1,2,3,4,0,0] 기존의 배열길이만큼 채우고, 남은 부분은 0 으로 채운다.
  • copyOf() : 매개변수로 받은 배열과 길이만큼 새로운 배열에 복사한다.
  • copyOfRange() : 지정한 범위만큼 새로운 배열을 복사하며 지정된 범위의 끝은 포함되지 않음.

 

 

배열의 정렬과 검색 - sort(), binarySearch()

- sort() : 배열을 정렬할 때 사용하면 된다.

- binarySearch() : 이진탐색을 위한 메서드로 지정된 값의 인덱스를 반환한다. => 이때 주의할 점은 binarySearch()는 이미 정렬된 배열에 한해서 올바르게 실행된다.

public static void main(String[] args) {

        int arr [] = {5,4,3,2,1};

        Arrays.sort(arr); // {1, 2, 3, 4, 5}로 정렬
        Arrays.binarySearch(arr, 3); // 인덱스 2 반환, 탐색 전 정렬 필요

    }

'JAVA' 카테고리의 다른 글

Arrays.binarysearch(int[] arr, int key)  (0) 2023.02.20
나머지 연산(modulo) 의 분배법칙...  (0) 2023.02.03

댓글