본 게시글은 Java Api Document - Java Class Arrays (JDK 17)
와 자바의 정석 의 내용을 옮겨 작성됐습니다.
Arrays는 자바의 Collection Framework로, 배열을 다루는데 유용한 메소드들이 모여있는 클래스
이다.
모든 메소드가 static
으로 선언되어있어 클래스 생성 없이 바로 사용이 가능하다.
copyOf(원본배열, int newLength)
copyOfRange(원본배열, int from, int to)
from
부터 to - 1
까지 복사하여 반환한다.int[] arr = {0, 1, 2, 3};
int[] arr1 = Arrays.copyOf(arr, arr.length); // { 0, 1, 2, 3 }
int[] arr2 = Arrays.copyOf(arr, 2); // { 0, 1 }
int[] arr3 = Arrays.copyOfRange(arr, 1, 3); // { 1, 2 }
fill(배열, 값)
setAll(배열, 함수)
예시
int[] arr = new int[5];
Arrays.fill(arr, 8); // { 8, 8, 8, 8, 8 }
Arrays.setAll(arr, i -> (int) (Math.random() * 5) + 1);
for (int a : arr) {
System.out.print(a);
}
출력
45132
sort(배열)
binarySearch(배열, 값)
예시
int[] arr = {6, 44, 1, 3, 12};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
System.out.println("위치: " + Arrays.binarySearch(arr, 12));
Integer[] arr1 = {6, 44, 1, 12, 3};
Arrays.sort(arr1, Collections.reverseOrder());
System.out.println(Arrays.toString(arr1));
출력
[1, 3, 6, 12, 44]
위치: 3
[44, 12, 6, 3, 1]
toString(배열)
deepToString(배열)
equals(배열1, 배열2)
deepEquals(배열1, 배열2)
예시
int[] arr = {6, 44, 1, 12, 3};
int[][] arr2 = {{11, 22}, {44, 33}};
int[][] arr3 = {{31, 32}, {41, 42}};
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.deepToString(arr2));
System.out.println(Arrays.deepEquals(arr2, arr3));
출력
[6, 44, 1, 12, 3]
[[11, 22], [44, 33]]
false
asList(Object...)
예시
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
// list1.add(6); 오류 발생
System.out.println(list1);
List<Integer> list2 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
list2.add(6);
System.out.println(list2);
출력
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
parallel
spliterator()
stream()