Arrays

jaehun_dev·2022년 12월 29일
0

Java

목록 보기
3/6

Arrays

Arrays 클래스는 배열을 다루기 편리한 static 메서드들을 제공한다.

toString(), deepToString()

배열의 내용을 출력해준다. 일차원 배열은 toString(), 다차원 배열의 경우 deepToString()을 사용해야 한다.

//static String toString(Object[] a)
int[] arr = {1,2,3,4};
int[][] arr2D = {{11,12},{21,22}};
System.out.println(Arrays.toString(arr);	//[1, 2, 3, 4]
System.out.println(Arrays.deepToString(arr2D);	//[[11, 12], [13, 14]]

equals(), deepEquals()

두 배열이 동일한지 비교한다. 일차원 배열은 equals(), 다차원 배열의 경우 deepEquals()를 사용해야 한다.

int[] arr = {0,1,2};
int[] arr2 = {0,1,2};
Arrays.equals(arr,arr2);	//true
int[][] arr2D = {{0,1},{1,2}};
int[][] arr2D2 = {{0,1},{1,2}};
Arrays.deepEquals(arr2D,arr2D2);	//true

copyOf(), copyOfRange()

배열의 복사를 한다. copyOf는 해당 배열을 설정한 길이만큼 복사하며, copyOfRange는 해당 배열을 설정한 범위만큼 복사한다.

int[] arr = {1,2,3,4};				//1,2,3,4
int[] arr2 = Arrays.copyOf(arr,2);	//1,2
//copyOfRange 시 기존 배열의 초과 범위는 0으로 채움
int[] arr3 = Arrays.copyOfRange(arr,1,5)	//2,3,4,0

fill(), setAll()

배열을 채운다. fill은 배열의 전체를 해당 값으로 채우고, setAll은 람다를 사용하여 배열 원소를 하나하나 채운다.

int[] arr = new int[5];
Arrays.fill(arr,3);	//3,3,3,3,3
//setAll 두번째 인자로 람다 사용 및 난수로 채우기
Arrays.setAll(arr,(i)->(int)(Math.random()*5)+1);

sort()

배열을 정렬한다. 정렬의 기준에 대해서는 다음 참조.
Comparator과 Comparable

binarySearch()

배열을 이분탐색한다. 이분탐색이기 때문에 정렬된 상태에서 사용해야 하며, 그렇지 않을 시 이상한 값이 나온다.

int[] arr = {6,3,8,10,1};
Arrays.sort(arr);	//1,3,6,8,10
Arrays.binarySearch(arr,6);	//idx=2

asList()

배열을 List로 변환한다. 🚫이 때 반환된 List는 읽기 전용이다. 따라서 만약 수정하고 싶다면 ArrayList 등의 생성자를 활용해야 한다.

int[] arr = {1,2,3,4};
List list = Arrays.asList(arr);
//list.add(5);	//수정 불가
List list2 = new ArrayList(Arrays.asList(arr));
list2.add(5);
profile
취업준비생/코딩&프로젝트 같이 하실분 연락주세요

0개의 댓글