반응형
Arrays 클래스
항목 정렬, 항목 검색, 항목 비교와 같은 Method들을 제공하는 자바의 Class이다.
* 선언 코드
import java.util.Arrays;
- java.util.Arrays를 import하면 사용할 수 있다.
Arrays 클래스 주요 Method
배열 복사 : copyOf(), copyOfRange()
// arr1의 길이만큼 arr1을 arr2에 복사
char[] arr2 = Arrays.copyOf(arr1, arr1.length);
// arr1[1]~arr1[2]를 arr3에 복사
// 왜 3까지 안할까? -> 자바는 끝 인덱스를 포함하지 않는다!
char[] arr3 = Arrays.copyOfRange(arr1, 1, 3);
배열을 List로 변환 : asList()
String[] strArr1 = {"ab", "bc", "cd"};
List<String> list1 = Arrays.asList(strArr1); // 배열을 리스트로 변환!
배열 element 출력 : toString(), deepToString()
int[] intStr1 = {1, 2, 3}; // 지금은 int형 배열
System.out.println(Arrays.toString(intStr1)); // "[1, 2, 3]" 요로케 String으로 변환
int[][] intStr2 = {{1, 2, 3}, {4, 5, 6}}; // 2차원 int형 배열
System.out.println(Arrays.toString(intStr2)); // 그냥 to String은 "[[I@15db9742, [I@6d06d69c]"
System.out.println(Arrays.deepToString(intStr2)); // deepToString은 "[[1, 2, 3], [4, 5, 6]]"
배열 비교 : equals(), deepEquals()
int[] intStr1 = {1, 2, 3};
int[] compStr1 = {1, 2, 3};
System.out.println(Arrays.equals(intStr1, compStr1)); // true, 1차원 배열 비교 시 사용 가능!!
int[][] intStr2 = {{1, 2, 3}, {4, 5, 6}};
int[][] compStr2 = {{1, 2, 3}, {4, 5, 6}};
System.out.println(Arrays.equals(intStr2, compStr2)); // false, 2차원일 경우 deepEquals 사용!
System.out.println(Arrays.deepEquals(intStr2, compStr2)); // ture, 2차원 배열 비교 시 사용!!
배열 채우기 : fill()
int[] intArr = new int[5];
Arrays.fill(intArr, 1); // 채울 배열, 채울 값
// 결과 : [1,1,1,1,1]
배열 항목 정렬 : sort()
< 오름차순 >
int[] intArr = {3, 2, 5, 1, 4};
Arrays.sort(intArr); // 오름차순 정렬, [1,2,3,4,5]
< 내림차순 >
int[] intArr = {3, 2, 5, 1, 4};
Arrays.sort(intArr); // 오름차순 정렬, [1,2,3,4,5]
// 스트링 형으로 변환하여 StringBuilder로 만들기
StringBuilder arr_reverse = new StringBuilder(new String(arr));
// StringBuilder로 반전시킨 후, int형으로 다시 변환
Integer.parseInt(arr_reverse.reverse().toString());
배열 항목 검색 : binarySearch()
binarySearch의 경우 정렬된 상태에서 찾는 알고리즘이기 때문에 미리 정렬을 해준 후 실행하여야 한다!
String[] arr = {"aa", "bb", "cc"}; 일 때
Arrays.sort(arr); // 먼저 정렬한 후
int idx = Arrays.binarySearch(arr, "bb"); // 찾기
// idx == 1
배열 스트림 : Arrays.stream()
스트림(stream) : 자바 8에서 추가한 스트림(Streams)은 lambda를 활용할 수 있는 기술 중 하나
int[] arr = {1, 2, 3, 4, 6, 7, 8, 0};
// 스트림을 사용하면 이렇게 간단하게 배열의 전체 합을 구할 수 있다.
Arrays.stream(arr).sum();
스트림에 대해서는 다음 포스팅에 좀 더 자세히 다뤄보자!
반응형
'Back-end' 카테고리의 다른 글
| [Spring Data JPA] JPA(Java Persistence API)란? (0) | 2021.11.15 |
|---|---|
| [Java] JVM(Java Virtual Machine)에 대해 (0) | 2021.11.14 |
| [Java] Java Pattern 클래스(자바 정규 표현식) - 사용법 (0) | 2021.11.10 |
| [Java] 자바에서의 print, printf, println 차이점 (0) | 2021.11.08 |
| [Java] 자바 스캐너(Scanner)에 대해 (0) | 2021.11.08 |