[Java] Arrays 클래스에 대해, Arrays 클래스 Method 정리
반응형

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();

 

스트림에 대해서는 다음 포스팅에 좀 더 자세히 다뤄보자!

반응형