[JAVA] Arrays 클래스 활용 (배열 다루기)

2020. 8. 6. 12:20Programming Language/JAVA

반응형

Arrays 클래스

Arrays 클래스에는 배열을 다루기 위한 다양한 메소드가 포함되어 있다.
Arrays 클래스의 모든 메소드는 클래스 메소드(static method)이므로,
객체를 생성하지 않고도 바로 사용할 수 있다.


■ Arrays 대표적인 메서드 정리

메서드 설명
static Object[] copyOf(Object[] original,
int newLength)
배열을 원하는 길이만큼 복사한 배열을 반환한다.
static Object[] copyOfRange(Object[] original,
int from, int to)
배열의 복사를 지정한 부분(시작 인덱스부터 끝 인덱스까지)을 
복사한 배열을 반환한다.
static void fill(Object[] a,
int fromIndex, int toIndex, Object val)
배열의 지정한 부분(시작 인덱스부터 끝 인덱스까지)을
원하는 값으로 변환하고,
fromIndex, toIndex 매게변수가 없을경우 배열전체값을 변환
static void sort(Object[] a,
int fromIndex, int toIndex)
배열의 지정한 부분(시작 인덱스부터 끝 인덱스 -1 까지)만을
오름차순 정렬하고,

fromIndex, toIndex 매게변수가 없을경우 배열전체를 정렬
static int binarySearch(Object[] a,
int fromIndex, int toIndex, Object key)
sort()정렬이 선행되어야 정확한 위치를 반환한다.
배열의 지정한 부분(시작 인덱스부터 끝 인덱스까지)에 해당하는 
값들 중 찾고자하는 key값에 index를 반환하고,
int fromIndex, int toIndex 매게변수가 없을경우 배열전체 중 찾고자하는 
key값에 index를 반환

■ copyOf 메서드 활용

int[] nums = {1,2,3,4,5};
// 배열 복사 : 첫번째 인덱스부터 두번째 인자값에 지정한 갯수만큼 복사		
int[] copyOfArr = Arrays.copyOf(nums, 3);
System.out.println("copyOf : " + Arrays.toString(copyOfArr));

/*
※ 출력 결과
copyOf : [1, 2, 3]
*/

copyOfRange 메서드 활용

int[] nums = {1,2,3,4,5};
// 배열 원하는 위치 복사 : 두번째 인자 위치부터 세번째 인자 위치-1 까지의 배열 복사
int[] copyOfRangeArr = Arrays.copyOfRange(nums, 1, 4);
System.out.println("copyOfRange : " + Arrays.toString(copyOfRangeArr));

/*
※ 출력 결과
copyOfRange : [2, 3, 4]
*/

 sort 메서드 활용

// 배열의 정렬 : 두번째 인자 위치부터 세번째 인자 위치-1 까지의 배열을 오름차순 정렬
int[] sortNums = {5,4,3,2,1};
Arrays.sort(sortNums, 1, 4);

// 배열의 전체 원소를 오른차순 정렬
// Arrays.sort(sortNums); 
// 결과  : [1,2,3,4,5]
System.out.println("sort : " + Arrays.toString(sortNums));

/*
※ 출력 결과
sort : [5, 2, 3, 4, 1]
*/

 binarySearch 메서드 활용

int[] nums = {1,2,3,4,5};
// 원하는 원소의 인덱스 찾기 
System.out.println("binarySearch : " + Arrays.binarySearch(nums, 4));

// 오름차순 정렬이 되어있지 않은 배열의 원소 인덱스를 제대로 찾아오지 못한다.
System.out.println("binarySearchErr : " + Arrays.binarySearch(new int[] {5,4,3,2,1}, 4));

/*
※ 출력 결과
binarySearch : 3
binarySearchErr : -6
*/

 fill 메서드 활용

int[] nums = {1,2,3,4,5};
// 배열의 원소값 변환 : 두번째 인자 위치부터 세번째 인자 위치-1 까지의 배열을 원소값 수정
Arrays.fill(nums, 1, 4, 6);

// 배열의 전체 원소를 수정
// Arrays.fill(nums, 6); 
// 결과  : [6,6,6,6,6]
System.out.println("fill : " + Arrays.toString(nums));

/*
※ 출력 결과
fill : [1, 6, 6, 6, 5]
*/

SOURCE CODE

 

hyunmin94/JavaExam

Contribute to hyunmin94/JavaExam development by creating an account on GitHub.

github.com

반응형