가자미의 개발이야기
자바 Arrays 클래스 본문
a. Arrays 클래스
java.util.Arrays 에 정의되어 있는 클래스.
모든 메소드는 static(정적) 메소드이므로, Aarays 클래스로 바로 사용이 가능
b. 배열 복사 메소드
메소드 | 매개변수 | 반환 값 | 비고 |
int[] copyOf(int[] arr, int len) | 원본 배열, 길이 | 원본의 특정 길이까지 복사된 배열 | int말고도 다양한 배열 가능, 원본보다 더 길게 복사하면 기본값(0)으로 초기화 |
int[] copyOfRange(int[] arr, int start, int end) | 원본 배열, 시작, 끝 | 원본의 시작~끝-1까지 복사 | 끝-1에 유의 int 말고도 다양한 배열 가능 |
void arraycopy(int[] arr, int index1, int[] arr2, int index2, int len) | 원본배열, 원본 인덱스, 대상 배열, 대상 인덱스, 길이 | 원본 배열의 인덱스부터 길이까지 대상 배열의 인덱스부터 복사 | 다양한 배열가능 |
boolean equals(int[] arr1, int[] arr2) | 원본배열, 비교되는 배열 | 두 배열의 내용이 같은지 참거짓 | 배열이 인스턴스를 저장한 배열인 경우 오버라이딩을 해줘야 한다.(그러지 않으면 참조주소 비교가 된다.) |
void sort(int[] a) | 원본배열 | 배열요소를 오름차로 정렬. 다양한 배열 가능 인스턴스 배열은 Comparable 인터페이스를 상속받아야 함. |
|
int binarySearch(int[] a, int key) | 원본배열, 찾으려는 값 | 찾으려는 값 인덱스 반환 없으면 -1 반환 |
반드시 오름차 졍렬이 되어 있어야 함 |
void fill(Object[] a, Object val) | 대상 배열, 채우려는 값 | 대상 배열을 특정 값으로 가득 채움 | |
<T> List<T> asList(T[] arr) | 대상배열 | 고정된 List를 반환 | 제네릭 메소드 |
c. 복사 메소드
-public static int[] copyOf(int원본배열, 길이) 원본의 어느 길이까지 복사
-public static int[] copyOfRange(int원본배열,시작,끝) 원본의 시작부터 끝 전까지 복사
-public static void arraycopy(배열 arr1, int arr1pos, 배열 arr2, int arr2pos, int length) 배열 arr1의 arr1pos에서 배열 arr의 arr2pos로 length 만큼 복사
d. 내용 비교 메소드
-public static boolean equals(int[] a, int[] a2) 참조값을 비교하는 것이 아닌 배열의 내용을 비교
인스턴스 저장 배열의 비교
인스턴스를 저장한 배열은 내용이 같은 두 배열도 false가 나올 수 있다. 왜?
인스턴스끼리의 비교는 object클래스의 equals 메소드로 비교를 한다.
equals메소드를 오버라이딩 안할 경우- 참조값을 비교하는 메소드이기 때문!
내용을 비교하고 싶으면 오버라이딩을 하자..!
e. 정렬 메소드
-public static void sort(int[] a) 오름차순으로 정렬
인스턴스 저장 배열의 정렬
-인스턴스의 경우 기준에 따라 오름차정렬이 달라질 수 있다.
-Comparable 인터페이스를 참고
-int compareTo(Object o){ }
-o보다 작다면 양의 정수
-o보다 크다면 음의 정수
-같다면 0을 반환하는 메소드를 오버라이딩하기로 약속!!
f. 배열의 탐색 메소드
-public static int binarySearch(int[] a, int key)
-있을경우 인덱스값 반환, 없으면 음수 반환
-오름차순으로 정렬되어 있어야함!
g. 인스턴스 저장 배열의 탐색
-public static int binarySearch(Object[] a, Object key)
-인스턴스 내용 비교를 통해 찾아냄(오름차순 정의 되어잇어야..)
'Java > 자바 기본 문법' 카테고리의 다른 글
[Java] 자바 제네릭의 상속과 타겟타입 (0) | 2021.01.22 |
---|---|
[Java] 제네릭 (0) | 2021.01.21 |
자바 래퍼클래스, Math 클래스, Number 클래스 (0) | 2021.01.20 |
자바 Object 클래스 java.lang.Object (0) | 2021.01.11 |
자바 가상머신 (0) | 2021.01.11 |