Java 정렬 | Arrays.sort(), Collections.sort()

2024. 11. 19. 13:15코딩테스트/Java

1. Arrays.sort()

- 배열을 정렬해주는 메서드

- java.util.Arrays

cf) java.util[패키지].Arrays[클래스].sort()[메서드]

- 일반 변수 배열 정렬

Array.sort(정렬할배열); //기본 오름차순

Arrays.sort(정렬할배열, Collections.reverseOrder()); //내림차순

- 사용자 정의 객체 배열 정렬 또는 정렬 방식 커스터마이징

comparator 사용 -> compare() 오버라이딩

public String[] solution(String[] strings, int n) {
	//comparator 사용 
     Arrays.sort(strings, new Comparator<String>(){ 
            @Override
            public int compare(String s1, String s2){
                char c1 = s1.charAt(n);
                char c2 = s2.charAt(n);
                if(c1==c2){
                	//같으면 0, s1이 더 앞이면 -, s1이 더 뒤면 +
                    return s1.compareTo(s2); 
                } else{
               		//c1이 더 앞이면 -, c2가 더 뒤면 + 
                    return c1-c2;             
                }
            }
        });
    return strings;
}
 
 

2. Collectons.sort()

- ArrayList를 정렬해주는 메서드

- java.util.Collections

- 일반 변수 리스트 정렬: Collections.sort(정렬할리스트);

- 사용자 정의 객체를 갖는 리스트 정렬

class에 comparable 상속 -> compareTo() 오버라이딩

@Override
    public int compareTo(Student std) {
        if (this.score < std.score) {
            return -1;
        }
        return 1;
    }