배열의 출력 - toString()
배열의 복사 - copyOf(), copyOfRange() // 새로운 배열 생성해서 반환
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.copyOf(arr, 7); // arr4 = [0,1,2,3,4,0,0]
int[] arr5 = Arrays.copyOfRange(arr, 2, 4); // arr5 = [2,3] 4는 불포함
int[] arr6 = Arrays.copyOfRange(arr, 0, 7); // arr6 = [0,1,2,3,4,0,0]
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]
binarySearch() 이진탐색은 정렬된 배열에만 가능!
결과 값으로 index를 반환
int[] arr = { 3, 2, 0, 1, 4};
int idx = Arrays.binarySearch(arr, 2); // idx = -5 잘못된 결과
Arrays.sor(arr); // 배열 arr을 정렬한다.
System.out.println(Arrays.toString(arr)); // [0, 1, 2, 3, 4]
int idx = Arrays.binarySearch(arr, 2); // idx = 2 올바른 결과
순차 검색(탐색) 과 이진 검색(탐색)
순차 탐색 : 순서대로 하나씩 찾는 법(뒤는 앞이든)
이진 검색 : 반으로 잘라 비교 후 남은 곳을 계속 비교하며 검색함
int[] arr = {0,1,2,3,4};
int[][] arr2D = {{11,12}, {21,22}};
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.deepToString(arr2D));
String[][] str2D = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
String[][] str2D2 = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
System.out.println(Arrays.equals(str2D, str2D2)); // false, 비교가 불가, 1차원 배열에만 사용
System.out.println(Arrays.deepEquals(str2D, str2D2)); // true
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); // list = [1, 2, 3, 4, 5]
list.add(6); // UnsupportedOperationException 예외 발생, List가 읽기 전용이기 때문
List list = new ArrayList(Arrays.asList(1,2,3,4,5)); // 새로운 ArraysList 생성