✔️ 배열을 다루기 편리한 메서드(static) 제공
✔️
toString()
static String toStirng(...)
- 새로운 배열을 생성해서 반환한다.
✔️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.copyOfRange(arr, 2, 4); // [2,3]
int[] arr6 = Arrays.copyOfRange(arr, 0, 7); // [0,1,2,3,4,0,0]
✔️
fill()
✔️setAll()
int[] arr = new int[5];
Arrays.fill(arr, 9); // arr = [9,9,9,9,9]
// 람다식 이용
Arrays.setAll(arr, (i) -> (int)(Math.random() * 5) + 1) // arr = [1,5,2,1,1]
✔️
sort()
✔️binarySearch()
: 이진탐색
❗️ 이진탐색은 정렬이 되어있을 때만 잘 작동한다.
int[] arr = {3, 2, 0, 1, 4};
int idx = Arrays.binarySearch(arr, 2); // idx = -5 잘못된 결과
Arrays.sort(arr); // 정렬
System.out.pritnln(Arrays.toString(arr)); // [0,1,2,3,4]
int idx = Arrays.binarySearh(arr, 2); // idx = 2
만약에 10을 찾는다고 생각해보자.
✔️
deepToString()
int[] arr = {0, 1, 2, 3, 4};
int[][] arr2D = {{11, 12}, {21, 22}};
System.out.println(Arrays.toString(arr)); // [0, 1, 2, 3, 4]
System.out.println(Arryas.deepToString(arr2D)); // [11, 12], [21, 22]
✔️
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(Arryas.deepEquals(str2D, str2D2)); // true
✔️
asList(Object ... a)
- 파라미터안의 ... 은 가변 매개변수로 갯수가 정해져있지 않다.
- 파라미터안에는 배열을 의미한다.
Integer[] arr = new Integer[]{1, 2, 3, 4, 5};
// list = [1, 2, 3, 4, 5]
List list = Arrays.asList(arr);
// List는 읽기전용이기 때문에 지원하지않는 기능이라는 예외가 발생한다.
list.add(6); // UnsupportedOperationException 예외발생
// 새로운 ArrayList로 넣어준다.
List list = new ArrayList(Arrays.asList(arr));
✔️
paralleIXXX()
✔️spliterator()
✔️stream()
References
: https://cafe.naver.com/javachobostudy