1. 설명

 Arrays 클래스는 배열 조작 기능을 가지고 있습니다.

배열 조작이랑 배열 복사, 항목 정렬, 항목 검색과 같은 기능을 말합니다.

단순한 배열 복사는 System.arraycopy() 메소드를 사용할 수 있으나, Arrays 는 추가적으로 항목 정렬, 항목 검색, 항목 비교와 같은 기능을 제공해줍니다.

 

다음은 Arrays 클래스가 가지고 있는 메소드들입니다. 



 

2. 배열 복사

다음은 arr1[] 배열의 전체 항목을 복사해서 arr2[] 배열을 생성합니다.

copyOf()


copyOfRange() 는 원본 배열의 시작 인덱스에서 끝 인덱스까지 복사한 배열을 리턴합니다.

이때 주의사항은 끝 인덱스는 포함하지 않습니다.

 

- 사용 법 -



 

 

3. 배열 항목 비교

Arrays의 equals()와 deepEquals()는 항목을 비교합니다.

 

 

 

4. 배열 항목 정렬

- 기본 타입 또는 String 배열은 Arrays.sort() 메소드의 파라미터로 지정해주면 자동으로 오름차순 정렬이 됩니다.

 

- 사용자 정의 클래스 타입이면 Comparable 인터페이스를 구현한 클래스가 있으면 됩니다. Member 배열에서 Member 객체들을 name 필드값으로 정렬하고 싶다면 다음과 같이 Member 클래스를 작성하면 됩니다.

public class Member implements Comparable<Member> {
    String name;
    
    public Member(String name) {
        this.name = name;
    }
    
    public int compareTo(Member o) {
        return name.compareTo(o.name);
    }
}

 

  Comparator<Member> 는 Member 타입만 비교하기 위해 Generic <>을 사용하였고, compareTo() 메소드는 비교값을 리턴하도록 오버라이딩했습니다.

 

  compareTo 메소드의 리턴값은 오름차순 일 때 자신이 파라미터보다 낮을 경우 음수, 같을 경우 0, 높을 경우 양수를 리턴하면 됩니다. 내림차순일 때는 자신이 파라미터보다 낮을 경우 양수, 같을 경우 0, 높을 경우 음수를 리턴하면 됩니다.

 

 

 

  다음 예제는 배열 항목을 정렬하는 방법을 보여줍니다.

 

 

 

 

* compareTo() -> 문자열의 사전순 값을 비교하요 그에 해당되는 int값을 리턴한다

예) A>B 라고 가정하면,

A = A = 0 (동일한 경우)

A > B = 1 (좌측 값이 큰 경우)

B > A = -1 (좌측 값이 작은 경우)

 

예) 문자

 

예) Integer

 

예) Double