Arrays 클래스
- 배열을 다루는 데 유용한 메소드들을 제공하는 클래스로 생성자 없이 모든 메소드가 static으로 선언되어 있습니다.
- 주요 메소드
리턴 메소드명 및 설명
int binarySearch(검색대상배열[] a, 검색객체) : 검색대상 배열에서 검색객체를 검색하는 메소드로 이분법을 이용 단, 이분법의 특성상 반드시 검색대상 배열은 오름차순으로 정렬이 되어있어야 함.
복사문자열 copyOf(원본배열, int 복사할 요소 갯수) : 원본배열의 처음부터 지정한 갯수만큼 복사하여 다른 배열로 생성
복사본배열 copOfRange(원본배열, int from, int to) : 원본배열의 from부터 to - 1까지 복사하여 다른 배열로 생성
boolean equals(배열1, 배열2) : 배열1과 배열2의 모든 데이터가 동일한지 여부를 리턴(1차원 배열에서만 사용가능)
boolean deepEquals(배열1, 배열2) : equals()와 같으면 다차원 배열에서 사용
void fill(배열, 채울 값) : 배열의 각 요소에 지정할 값을 채움
void sort(배열) : 배열의 각 요소들을 오름차순으로 정렬시킴
String toString(배열) : 배열의 각 요소들의 값들을 문자열로 리턴
String deepToString(배열) : toString() 같으나 다차원 배열용
.
.
import java.util.*;
class ArraysEx{
public static void main(String[] args) {
int[] arr = {0, 1, 2, 3, 4};
int[][] arr2D = {{11, 12, 13}, {21, 22, 23}};
System.out.println("arr : " + Arrays.toString(arr)); // arr : [0, 1, 2, 3, 4]
System.out.println("arr2D : " + Arrays.deepToString(arr2D)); // arr2D : [[11, 12, 13], [21, 22, 23]]
int[] arr2 = Arrays.copyOf(arr, arr.length); // arr2 : [0, 1, 2, 3, 4]
// arr배열의 처음부터 arr.length - 1까지 복사하여 arr2로 생성
// arr배열을 arr2에 넣음 > arr2 = arr;도 가능
int[] arr3 = Arrays.copyOf(arr, 3); // arr3 : [0, 1, 2]
// arr배열의 처음부터 3개의 요소를 복사하여 arr3로 생성
int[] arr4 = Arrays.copyOf(arr, 7); // arr4 : [0, 1, 2, 3, 4, 0, 0]
// 부족한 요소는 0으로 채워 생성(int형 배열이므로 기본값 0을 사용)
int[] arr5 = Arrays.copyOfRange(arr, 2, 4); // arr5 : [2, 3]
// arr배열의 2번부터 4 - 1번까지 잘라내어 arr5로 생성
int[] arr6 = Arrays.copyOfRange(arr, 0, 7); // arr6 : [0, 1, 2, 3, 4, 0, 0]
// 부족한 요소는 0으로 채워 생성(int형 배열이므로 기본값 0을 사용)
System.out.println("arr2 : " + Arrays.toString(arr2));
System.out.println("arr3 : " + Arrays.toString(arr3));
System.out.println("arr4 : " + Arrays.toString(arr4));
System.out.println("arr5 : " + Arrays.toString(arr5));
System.out.println("arr6 : " + Arrays.toString(arr6));
int[] arr7 = new int[5];
Arrays.fill(arr7, 9);
// arr7배열의 요소들을 9로 채워넣음
System.out.println("arr7 : " + Arrays.toString(arr7)); // arr7 : [9, 9, 9, 9, 9]
String[][] str1 = { {"aa", "bb"}, {"AA", "BB"} };
String[][] str2 = { {"aa", "bb"}, {"AA", "BB"} };
System.out.println(Arrays.equals(str1, str2)); // false
// Arrays.equals() : 1차원 배열의 요소들을 비교하는 메소드
System.out.println(Arrays.deepEquals(str1, str2)); // true
// Arrays.deepEquals() : 다차원 배열의 요소들을 배교하는 메소드
char[] chArr = {'A', 'D', 'C', 'B', 'E'};
System.out.println("chArr : " + Arrays.toString(chArr)); // chArr : [A, D, C, B, E]
System.out.println("index of 'B' : " + Arrays.binarySearch(chArr, 'B')); // index of 'B' : -2
// 'B'를 찾지 못했으며 이유는 이분법(binarySearch)으로 검색하려면 무조건 오름차순으로 정렬되어 있어야 함
System.out.println(" = After sotring = ");
Arrays.sort(chArr);
// chArr배열을 오름차순으로 정렬
System.out.println("chArr : " + Arrays.toString(chArr)); // chArr : [A, B, C, D, E]
System.out.println("index of 'B' : " + Arrays.binarySearch(chArr, 'B')); // index of 'B' : 1
// chArr배열이 오름차순으로 정렬되어 있기 때문에 이분법(이진검색)으로 'B'의 위치 인덱스를 찾아 출력
}
}
.
.
Arrays 주요 메소드들을 사용해봤다.
1차원 배열과 다차원 배열에 사용해야할 메소드들이 조금씩 다르긴 하지만
잘 숙지하고 사용하면 될것같다.
'Java > 본격 Java 컬렉션' 카테고리의 다른 글
[Java] ArrayList 사용해보기 (0) | 2020.07.13 |
---|---|
[Java] Collection_desc (0) | 2020.07.03 |
[Java] Iterator<E> (0) | 2020.07.03 |
[Java] Stack - Queue (0) | 2020.07.03 |
[Java] LinkedList (0) | 2020.07.03 |