Arrays클래스에는 배열을 다루는데 유용한 메서드가 정의되어 있다.
java.util.Arrays
편의기능이라
static
이며final
클래스로 되어 있다. 상속을 하지 않음
copyOf(배열, index)
, copyOfRange(배열, from, to)
fill(배열, 값)
: 지정된 값으로 모든 요소를 채움setAll(배열, 함수형인터페이스)
: 배열을 채우는데 사용할 함수형 인터페이스를 매개변수로 받음sort()
: 배열을 정렬할 때 사용binarySearch()
: 배열에 저장된 요소를 검색할 때 사용
binarySearch()
는 배열에서 지정된 값이 저장된 위치(index)를 찾아서 반환하는데, 반드시 배열이 정렬된 상태이어야 올바른 결과를 얻는다. binarySearch()는 검색한 값과 일치하는 요소들이 여러 개 있다면, 이 중에서 어떤 것의 위치가 반환될지는 알 수 없다.
toString()
: 배열의 모든 요소를 문자열로 편하게 출력할 수 있다. 일차원 배열에서만 사용할 수 있다.
deepToString()
: 배열의 모든 요소를 재귀적으로 접근해서 문자열을 구성하므로 다차원 배열에서도 사용할 수 있다.
equals()
: 두 배열에 저장된 모든 요소를 비교해서 같으면 true, 다르면 false를 반환한다. 일차원 배열에서만 사용가능하다.
deepToEquals()
: 다차원 배열에서도 사용할 수 있다.
asList()
: 배열을 List에 담아서 반환
asList()가 반환한 List의 크기를 변경할 수 없다(추가 삭제가 불가능) 추가 삭제가 필요하다면 새로운 List를 생성하면 된다.
/**
* 1. 작성자 : Dani
* 2. 작성일 : 12월 10일
* 3. Arrays클래스의 기본 문법
*/
package Basics;
import java.util.Arrays;
import java.util.List;
import java.util.function.IntUnaryOperator;
import static java.util.Arrays.*;
public class ArraysEx1 {
public static void main(String[] args) {
int[] arr = {0,1,2,3,4};
int[] arr2 = Arrays.copyOf(arr, arr.length);
System.out.println(Arrays.toString(arr2));
int[] arr3 = Arrays.copyOf(arr, 3); // 인덱스 <3 까지 복사
System.out.println(Arrays.toString(arr3));
int[] arr4 = Arrays.copyOfRange(arr, 2, 4);
System.out.println(Arrays.toString(arr4)); // 인덱스 2이상 4미만
/**
* fill() : 배열의 모든 요소를 지정된 값으로 채운다.
*/
int[] fill = new int[5];
Arrays.fill(fill, 0);
System.out.println(Arrays.toString(fill));
/**
* 제곱하여 저장
*/
IntUnaryOperator generator = new IntUnaryOperator() {
@Override
public int applyAsInt(int operand) {
return operand * operand;
}
};
/**
* setAll() : 배열을 채우는데 사용할 함수형 인터페이스를 매개변수로 받는다.
*/
setAll(arr, generator);
System.out.println(Arrays.toString(arr));
/**
* sort() : 배열의 정렬
*/
String[] strings = {"z", "A1", "HG", "S", "d", "n", "b"};
sort(strings);
System.out.println(Arrays.toString(strings)); // 오름차순
/**
* asList() : 배열을 List로 변환
*/
String[] strings2 = {"z", "A1", "HG", "S", "d", "n", "b"};
List<String> list = asList(strings2);
System.out.println(list.stream().toList());
}
}
[0, 1, 2, 3, 4]
[0, 1, 2]
[2, 3]
[0, 0, 0, 0, 0]
[0, 1, 4, 9, 16]
[A1, HG, S, b, d, n, z]
[z, A1, HG, S, d, n, b]