[JAVA] Arrays 클래스 활용 (배열 다루기)
2020. 8. 6. 12:20ㆍProgramming 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
반응형
'Programming Language > JAVA' 카테고리의 다른 글
[JAVA] 객체 지향 프로그래밍(OOP : Object-Oriented Programming)의 특징 (0) | 2020.09.24 |
---|---|
[JAVA] 스트림(Stream) API 활용 (0) | 2020.08.07 |
[JAVA] StringTokenizer 클래스 활용 (문자열 구분자로 자르기) (0) | 2020.08.06 |
[JAVA] JVM의 메모리 구조 (0) | 2020.08.05 |
[JAVA] Map 계열 (Hashtable/HashMap/Properties) 정리 (0) | 2020.08.04 |