반응형
java.lang.Object
java.util.Arrays
Arrays 클래스는 항목 정렬, 항목 검색, 항목 비교와 같은 메소드들을 제공한다
모든 메소드는 static(정적) 메소드이므로, Aarays 클래스로 바로 사용이 가능하다
배열 복사
배열 복사를 위해 단순하게
System.arraycopy(int[] src, int srcPos, int[] dest, int destPos, int length);
// (원본배열, 원본시작인덱스, 타겟배열, 타겟시작인덱스, 복사개수)
메소드를 이용할 수 있다
이 이외에도 Arrays 메소드를 사용하여 다음과 같이 복사할 수 있다
char[] arr2 = Arrays.copyOf(arr1, arr1.length);
// arr1 배열 arr1.length 만큼을 arr2로 복사
char[] arr3 = Arrays.copyOfRange(arr1, 1, 3);
// arr1[1] ~ arr1[2] 를 arr3[0] ~ arr3[1] 로 복사
// 1~3에서 끝 인덱스는 포함되지 않는다
배열 항목 정렬
Arrays.sort(arr);
기본 타입 또는 String 배열은
위와 같이 arr 배열을 사전순(오름차순)으로 정렬할 수 있다
만약 사용자 정의 클래스 타입이라면, Comparable 인터페이스를 구현하고 있어야 한다 (implements)
다음과 같이 Member 클래스를 작성해보자
// Member 타입만 비교하기 위해 제네릭 <> 사용
class Member implements Comparable<Member> {
String name;
Member(String name)
this.name = name;
@Override
int compareTo(Memeber m)
return name.compareTo(m.name);
// 내림차순일 때는 *(-1) 를 하여 -1, 0, 1를 구분한다
}
public class Example {
public static void main(String[] args) {
Member m1 = new Member("aa");
Member m2 = new Member("bb");
Member m3 = new Member("cc");
Member[] members = {m1, m2, m3};
Arrays.sort(members);
}
}
배열 항목 검색
Arrays.sort() 메소드로 정렬을 한 후에,
Arrays.binarySearch() 메소드로 원하는 항목의 인덱스 값을 찾을 수 있다
( 정렬을 하지 않은 후에 binarySearch() 메소드를 사용하거나, 없는 항목을 찾으면 음수값이 리턴된다
나중에 기회가 되면 리턴되는 음수값을 좀 더 알아보자 )
// Member[] members = {"aa", "bb", "cc"}; 일 때
Arrays.sort(members);
int idx = Arrays.binarySearch(members, "bb");
// idx == 1
배열 동일 항목 채우기
fill() 메소드로 배열에 동일한 값을 저장할 수 있다
void fill(배열, 값)
void fill(배열, 시작인덱스, 끝인덱스, 값)
배열 항목 비교
equals(배열, 배열) / deepEquals(배열, 배열) 로 얕은 / 깊은 비교를 할 수 있다
이에 관해서는 다음 글에서 다뤄보도록 하자
반응형
'etc.' 카테고리의 다른 글
[백준 1463번][Java] 1로 만들기 (0) | 2020.07.07 |
---|---|
[Java] 얕은 복사와 비교, 깊은 복사와 비교 (Objects, Arrays 클래스) (0) | 2020.06.29 |
[Java] String 클래스와 String 메소드 (0) | 2020.06.17 |
[Java] StringTokenizer 클래스와 StringTokenizer 메소드 (0) | 2020.05.30 |
[Java code] 이것이 자바다 예외처리 확인문제 7번 - 예외 떠넘기기 (0) | 2020.05.18 |