import java.util.Arrays;
Arrays 클래스는 배열을 조작하는데 유용한 다양한 메소드들을 지원한다.
Arrays.toString(), Arrays.equals(), Arrays.indexOf(), Arrays.indexOfRange(), Arrays.sort(), Arrays.binarySearch(), Arrays.copyOf(), Arrays.copyOfRange(), Arrays.fill()
0. 배열의 복제: clone()
- Java의 배열 인스턴스는 clone() 메소드 하나만을 지원한다.
- 대신 java.util.Arrays 클래스에서 배열과 관련된 유용한 메소드를 제공한다.
/* clone() 예시 */
int[] row = {1,2,3,4};
int[] row2 = row.clone();
1. 배열의 출력: Arrays.toString()
- 배열의 요소들을 문자열의 형태로 변환하여 [요소1, 요소2, ...] 형식으로 return한다.
- argument로 배열을 입력한다.
- 사용법: Arrays.toString(arr1)
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] intArray = {1,2,3,4,5};
char[] charArray = {'a', 'B', 'c', 'D'};
System.out.println(Arrays.toString(intArray));
System.out.println(Arrays.toString(charArray));
}
}
실행 결과
[1, 2, 3, 4, 5]
[a, B, c, D]
2. 배열의 비교: Arrays.equals()
- argument로 받은 두 배열의 길이와 타입, 인자의 값이 같은지 비교하고 같으면 true, 다르면 false를 return한다.
- 2차원 배열의 경우 Arrays.deepEquals(arr1, arr2) 을 사용한다.
- 사용법: Arrays.equals(arr1, arr2)
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] intArray1 = {1,2,3,4,5};
int[] intArray2 = {1,2,3,4,5};
char[] charArray1 = {'a', 'B', 'c', 'D'};
char[] charArray2 = {'a', 'B', 'c', 'D'};
System.out.println(Arrays.equals(intArray1, intArray2)); // true
System.out.println(Arrays.equals(charArray1, charArray2)); // true
}
}
실행결과
true
true
3. 배열의 복사: Arrays.copyOf(), Arrays.copyOfRange()
Arrays.copyOf()
- 배열을 원하는 길이만큼 복사(0부터)하여 새로운 배열을 만든다.
- argument로 원본 배열과 복사할 인자의 개수(copy 배열의 길이)를 입력한다. 요소는 원본 배열의 0번째 index부터 복사된다.
- 아래 코드의 copy2처럼 지정된 길이가 원본 배열의 길이보다 크다면, 새 배열의 나머지 부분은 해당 타입의 기본값으로 채워집니다.
- 사용법: int[] copyArray = Arrays.copyOf(originalArray, copyArray 배열 길이);
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] original = {1, 2, 3, 4, 5};
int[] copy1 = Arrays.copyOf(original, 3);
int[] copy2 = Arrays.copyOf(original, 10);
System.out.println(Arrays.toString(copy1));
System.out.println(Arrays.toString(copy2));
}
}
실행 결과
[1, 2, 3]
[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]
Arrays.copyOfRange()
- 배열의 특정 범위를 복사하여 새로운 배열을 만든다.
- argument로 원본 배열, start index, end index를 입력한다. original[start_index] ~ original[end_index - 1]이 복사됨.
- 아래 코드의 copy2처럼 지정된 길이가 원본 배열의 길이보다 크다면, 새 배열의 나머지 부분은 해당 타입의 기본값으로 채워집니다.
- 사용법: int[] copyArray = Array.copyOfRange(originalArray, start_index, end_index);
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] original = {1, 2, 3, 4, 5};
int[] copy1 = Arrays.copyOfRange(original, 1, 3);
int[] copy2 = Arrays.copyOfRange(original, 2, 10);
System.out.println(Arrays.toString(copy1));
System.out.println(Arrays.toString(copy2));
}
}
실행 결과
[2, 3]
[3, 4, 5, 0, 0, 0, 0, 0]
4. 배열의 정렬
Arrays.sort()
- 배열의 요소들을 숫자는 오름차순으로, 문자열은 사전순으로 정렬된다.
- 사용법: Arrays.sort(arr1)
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] intArray = {1, 2, 3, 4, 5};
char[] charArray = {'c','d','b','a','e'};
Arrays.sort(intArray);
Arrays.sort(charArray);
System.out.println(Arrays.toString(intArray));
System.out.println(Arrays.toString(charArray));
}
}
실행 결과
[1, 2, 3, 4, 5]
[a, b, c, d, e]
Arrays.binarySearch
- argument로 전달받은 배열에서 특정 객체의 위치를 binary search로 검색 후 index 값을 return.
- argument로 전달한 배열이 정렬되어 있어야 한다.
int[] array = {1,2,3,4,5,6,7,8,9};
int index = Arrays.binarySearch(array, 7); // 6을 반환
2024.08.25 - [Java] - [Java] 06. 배열
[Java] 06. 배열
Chapter 1: 배열 개요Java에서 배열 표기법배열의 차원배열 요소에 접근배열의 경계 검사배열과 컬렉션 비교 Chapter 2: 배열 생성배열 인스턴스 생성배열 요소 초기화다차원 배열 요소 초기화가변
lightningtech.tistory.com
출처: https://github.com/gikpreet/class-programming_with_java/tree/master
GitHub - gikpreet/class-programming_with_java
Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.
github.com
'Java' 카테고리의 다른 글
[Java] 07. 객체지향 프로그래밍 기본 (0) | 2024.08.27 |
---|---|
[Java] 06. 배열 (0) | 2024.08.25 |
[Java] 05. 메소드와 파라미터* (0) | 2024.08.23 |
[OOP] 객체지향 설계 원칙: SOLID (0) | 2024.08.23 |
[OOP] 객체 지향 프로그래밍(OOP)의 정의와 4가지 특징 * (0) | 2024.08.23 |