Collections Framework 6 : Arrays

이의준·2024년 6월 10일

Java

목록 보기
64/87

Arrays

  • 배열을 다루기 편리한 메서드(static) 제공

1. 배열의 출력 - toString()

  • static String toString(boolean[] a)
  • static String toString(byte[] a) 등

2. 배열의 복사 - copyOf(), copyOfRange()

int[] arr = {0, 1, 2, 3, 4};
int[] arr2 = Arrays.copyOf(arr, arr.length); // [0,1,2,3,4]
int[] arr3 = Arrays.copyOf(arr, 3); // [0, 1, 2]
int[] arr4 = Arrays.copyOf(arr, 7); // [0, 1, 2, 3, 4, 0, 0]
int[] arr5 = Arrays.copyOf(arr, 2, 4); // [2, 3]
int[] arr6 = Arrays.copyOfRange(arr, 0, 7); // [0, 1, 2, 3, 4, 0, 0]

3. 배열 채우기 - fill(), setAll()

int[] arr = new int[5];
Arrays.fill(arr, 9); // [9, 9, 9, 9, 9]
Arrays.setAll(arr, (i) -> (int)(Math.random()*5 + 1); // [1, 5, 2, 1, 1]

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

int[] arr = {3, 2, 0, 1, 4};
int idx = Arrays.binarySearch(arr, 2); // idx = -5 <- 잘못된 결과

Arrays.sort(arr); // 배열 arr 정렬
System.out.println(Arrays.toString(arr)); // [0, 1, 2, 3, 4]
int idx = Arrays.binarySearch(arr, 2); // idx = 2
  • 이진 탐색은 정렬되어있을 경우만 사용 가능

5. 다차원 배열의 출력 - deepToString()

int[] arr = {0, 1, 2, 3, 4};
int[][] arr2D = {{11, 12}, {21, 22}};

System.out.prinln(Arrays.toString(arr)); // [0, 1, 2, 3, 3]
System.out.println(Arrays.deepToString(arr2D)); // [[11, 12], [21, 22]]

6. 다차원 배열의 비교 - deepEquals()

String[][] str2D = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
String[][] str2D2 = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};

System.out.println(Arrays.equals(str2D, str2D2)); // false
System.out.println(Arrays.deepEquals(str2D, str2D2)) // true

7. 배열을 List로 변환 - asList(Object...a)

List list = Arrays.asList(new Integer[](1, 2, 3, 4, 5))}; // list = [1, 2, 3, 4, 5]
List list = Arrays.asList(1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]
list.add(6) // UnsupportedOperationException 예외 발생

List list = new ArrayList(Arrays.asList(1, 2, 3, 4, 5));

0개의 댓글