배열의 복사 - copyOf(), copyOfRange()
copyOf() : 배열 전체를 복사해서 새로운 배열을 만들어 반환
copyOfRange() : 배열의 일부를 복사해서 새로운 배열을 만들어 반환
int[] arr = {0,1,2,3,4};
int[] arr2 = Arrays.copyOf(arr, arr.length);
int[] arr3 = Arrays.copyOfRange(arr, 2, 4);
배열의 채우기 - fill(), setAll()
fill() : 배열의 모든 요소를 지정된 값으로 채운다.
setAll() : 배열을 채우는데 사용할 함수형 인터페이스를 매개변수로 받는다.
int[] arr = new int[5];
Arrays.fill(arr, 9);
Arrays.setAll(arr, () -> (int)(Math.random()*5)+1);
배열의 정렬과 검색 - sort(), binarySearch()
sort() : 배열을 정렬할 때
binarySearch() : 배열에 저장된 요소를 검색할 때, 반드시 배열이 정렬된 상태이어야 올바른 결과를 얻는다.
(검색한 값과 일치하는 요소들이 여러 개 있다면, 어떤 것의 위치가 반환될 지 알 수 없음)
순차 검색 | - 배열의 첫 번째 요소부터 순서대로 하나씩 검색하는 것 - 배열이 정렬되어 있을 필요 X |
이진 검색 | - 배열의 검색할 범위를 반복적으로 절반씩 줄여가면서 검색 - 배열이 정렬되어야 함. |
문자열의 비교와 출력 - equals(), toString()
toString() : 배열의 모든 요소를 문자열로 편하게 출력할 수 있음, 일차원 배열에만 사용 가능
deepTo String() : 배열의 모든 요소를 재귀적으로 접근해서 문자열을 구성하므로 2차원이상의 배열에도 동작
int[] arr = {0,1,2,3,4};
int[][] arr2D = {{11,22},{21,22}};
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.deepToString(arr2D));
equals() : 두 배열에 저장된 모든 요소를 비교해서 같으면 true, 다르면 false를 반환
(배열에 저장된 배열의 주소를 비교하기 때문 -> 다차원배열에 사용하면 무조건 false 반환)
deepEquals() : 다차원 배열의 비교에서 사용
배열을 List로 변환 - asList(Object... a)
asList() : 배열을 List에 담아서 반환, 매개변수의 타입이 가변인수라서 배열 생성 없이 저장할 요소들만 나열하는 것도 가능
List list = Arrays.asList(new Integer[]{1,2,3,4,5});
List list = Arrays.asList(1,2,3,4,5);
list.add(6). // 예외 발생
▶ asList()가 반환한 List의 크기를 변경할 수 없다. 즉, 추가 삭제 불가.
List list = new ArrayList(Arrays.asList(1,2,3,4,5));
// 크기를 변경할 수 있는 List
parallelXXX(), spliterator(), stream()
'parallel'로 시작하는 메서드 : 빠른 결과를 위해 여러 쓰레드가 작업을 나누어 처리
spliterator() : 여러 쓰레드가 처리할 수 있게 하나의 작업을 여러 작업으로 나누는 spliterator()를 반환
stream() : 컬렉션을 스트림으로 변환
'Language > java' 카테고리의 다른 글
[Java] 컬렉션 프레임윅 (HashSet) (1) | 2022.07.27 |
---|---|
[Java] 컬렉션 프레임윅 (Comparator와 Comparable) (0) | 2022.07.27 |
[Java] 컬렉션 프레임윅 (Iterator, ListIterator, Enumeration) (0) | 2022.07.27 |
[Java] 컬렉션 프레임윅 (Stack과 Queue) (0) | 2022.07.21 |
[Java] 컬렉션 프레임윅 (LinkedList) (0) | 2022.07.21 |
댓글