java.util.Arrays
유틸리티 클래스를 사용하여 배열을 조작할 수 있다.
배열을 정렬, 복제, List로 변환 하는 등 Arrays 클래스는 배열을 다루기 위한 다양한 메소드가 포함되어 있다.
(단순한 배열의 복사는 System.arrayCopy() 메서드를 통해 구현이 가능하다.)
Arrays 클래스
모든 메소드는 static(정적) 메소드 이므로, 객체를 사용하지 않고 Arrays 클래스로 바로 사용이 가능하다.
메서드 | 설명 |
copyOf(원본 배열, 복사할 길이) | 특정 배열의 원하는 길이만큼 새로운 배열로 복사 후 리턴 |
copyOfRange(원본 배열, 시작 인덱스, 끝 인덱스) | 특정 배열의 시작 인덱스에서 끝 인덱스까지 복사한 배열 리턴 |
binarySearch(배열, 찾는 값) | 전체 배열 항목에서 찾는 값이 존재하는 인덱스 리턴 (찾는 값과 일치하는 요소가 여러개 존재할 경우, 어떤 위치의 값이 반환될 지는 알수 없다.) |
deepEquals(배열, 배열) | 두 배열의 깊은 비교 (2차원, 다차원 배열의 요소 비교시 사용) |
equals(배열, 배열) | 두 배열의 얕은 비교 (같으면 true, 그렇지 않으면 false 리턴) |
fill(배열, 값) | 배열의 모든 요소를 지정된 값 저장 |
fill(배열, 시작 인덱스, 끝 인덱스) | 시작 인덱스부터 끝 인덱스까지의 항목에만 동일한 값을 저장 |
setAll() | 배열을 채우는 데 사용할 함수형 인터페이스를 매개변수로 받는다. 메소드 호출 시 함수형 인터페이스를 구현한 객체를 매개변수나 람다식을 지정해야 한다. |
sort(배열) | 배열 전체 항목을 오름차순으로 정렬 |
sort(배열, Comparator c) | 지정한 Comparator에 의해 정렬, Comparator를 구현해서 정렬 기준 제공 가능 |
toString(배열) | 배열의 모든 요소를 문자열로 출력 |
deepToString(배열) | 배열의 모든 요소를 문자열로 출력 (다차원 배열에서 사용 - 재귀적으로 접근하여 문자열 구성) |
binarySearch() 메소드
이진 검색 알고리즘을 이용하여 검색 후 해당 위치 리턴
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr = new int[100];
for(int i=0; i<arr.length; i++) {
arr[i] = i;
}
System.out.println(Arrays.binarySearch(arr, 12));
}
}
12
copyOf() 메소드
특정 배열의 원하는 길이만큼 새로운 배열로 복사 후 리턴
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, 3);
int[] arr3 = Arrays.copyOf(arr1, 10);
for(int i=0; i<arr2.length; i++) {
System.out.print(arr2[i] + " ");
}
System.out.println();
for(int i=0; i<arr3.length; i++) {
System.out.print(arr3[i] + " ");
}
}
}
1 2 3
1 2 3 4 5 0 0 0 0 0
copyOfRange() 메소드
특정 범위에 해당하는 요소들만 새로운 배열로 복사하여 리턴
(끝 인덱스는 포함하지 않음.)
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOfRange(arr1, 1, 4);
for(int i=0; i<arr2.length; i++) {
System.out.print(arr2[i] + " ");
}
}
}
2 3 4
equals() 메소드
전달받은 두 배열이 같은지 비교. (boolean 타입)
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = {1, 2, 3, 4, 5};
int[] arr3 = {3, 4, 5, 6, 7};
System.out.println(Arrays.equals(arr1, arr2));
System.out.println(Arrays.equals(arr1, arr3));
}
}
true
false
fill() 메소드
전달받은 배열의 모든 요소를 지정된 값으로 초기화함
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr = new int[5];
Arrays.fill(arr, 1);
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
1 1 1 1 1
sort() 메소드
전달받은 배열의 모든 요소를 오름차순으로 정렬
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr = {5, 3, 1, 4, 2};
Arrays.sort(arr);
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
1 2 3 4 5
'Java' 카테고리의 다른 글
String , StringBuilder, StringBuffer의 차이 (0) | 2021.08.03 |
---|---|
JAVA 복습 - 기본 지식 복습 및 확인 (0) | 2021.08.01 |
Stack 클래스와 메소드 정리 (0) | 2021.08.01 |
String 클래스와 메소드 정리 (0) | 2021.06.09 |
Math 클래스와 메소드 정리 (0) | 2021.05.26 |