본문으로 바로가기

Arrays 클래스 ( java.util.Arrays )

java.util.Arrays 유틸리티 클래스를 사용하면 배열(Array)을 정렬, 복제하거나, List로 변환 하는 등의 작업을 쉽게 처리 할 수 있습니다. 해당 메서드는 클래스 메서드(Class method / Static method)로써 Arrays 클래스의 인스턴스 생성없이 바로 편리하게 사용할 수 있습니다. 그럼 Arrays 메서드 중 자주 사용되는 몇가지 메서드에 대해 알아보겠습니다.

sort() - 정렬

Arrays 클래스의 sort()메서드를 통해 배열을 오름차순으로 정렬 할 수 있습니다. Comparator,Stream API 등을 통해 내림차순 등 여러가지 방법으로 정렬하는 자세한 내용은 아래 별도 포스팅을 링크를 참조해 주세요.

 

[Java] 배열(Array) 정렬 하기 ( 오름차순,내림차순 등 )

| Arrays.sort() java.util.Arrays 유틸리티 클래스를 사용하면 배열(Array)을 정렬, 복제하거나, List로 변환 하는 등의 작업을 쉽게 처리 할 수 있습니다. 해당 클래스의 sort() 메서드를 사용하면 쉽게 오름

ifuwanna.tistory.com

copyOf() - 복제

copyOf() 메소드는 인자로 전달받은 길이의 새로운 배열을 복사하여 반환합니다. 기존 배열을 초과하는 길이의 데이터는 기본값으로 채워서 반환하게 됩니다. ( primitive type : 기본값 / Reference Type은 null )

int[] intArr = new int[] {1,2,3,4,5};
String[] stringArr = new String[] {"A","C","B","E","D"};

Arrays.copyOf(intArr,3);        // int[3] {1,2,3}
Arrays.copyOf(intArr,10);        // int[10] {1,2,3,4,5,0,0,0,0,0}
Arrays.copyOf(stringArr,10);    // String[10] {A,B,C,D,E,null,null,null,null,null}

copyOfRange() - 복제

copyOfRange() 메서드는 지정한 범위에 해당하는 요소들을 복사하여 새로운 배열을 반환해 줍니다.

/*
 * static <T> T[] copyOfRange(T[] original, int from, int to);
 * arr[from]~arr[to-1]의 까지 잘라서 복제
 * 길이 to-from 의 배열이 생성되고 남는건 기본값으로 채움!
 */
int[] intArr = new int[] {1,2,3,4,5};
String[] stringArr = new String[] {"A","C","B","E","D"};

Arrays.copyOfRange(intArr,0,3);  // 1 2 3 
Arrays.copyOfRange(intArr,2,4);  // 3 4 
Arrays.copyOfRange(intArr,0,10);  // 1 2 3 4 5 0 0 0 0 0 
Arrays.copyOfRange(stringArr,0,3); // A B C
Arrays.copyOfRange(stringArr,2,4); // C D 
Arrays.copyOfRange(stringArr,0,10); // A B C D E null null null null null

fill() - 채우기

fill() 메서드를 사용하면 배열의 요소를 특정 값으로 채울 수 있습니다.

/*
 * static void fill(Object[] a, Object val)
 */
int[] intArr = new int[] {1,2,3,4,5};
String[] stringArr = new String[] {"A","C","B","E","D"};

Arrays.fill(intArr,7);  // 7 7 7 7 7
Arrays.fill(stringArr,"A");  // A A A A A

Reference

위에서 소개한 메서드 이외에도 배열내 데이터 검색을 위한 binarySearch(), 배열의 특정 범위를 반환하는 spliterator(), 배열을 비교하는 equals() 등 배열 관련된 다양한 유틸성 메소드를 지원하니 API 문서를 읽어 보시길 한 번 보시길 추천드립니다!

 

Arrays (Java Platform SE 8 )

parallelPrefix public static   void parallelPrefix(T[] array, BinaryOperator  op) Cumulates, in parallel, each element of the given array in place, using the supplied function. For example if the array initially holds [2, 1, 0, 3] and the operation pe

docs.oracle.com