/**
* primitive type int 정렬
*/
int[] arr = {3, 5, 2, 1, 4};
// 오름차순 정렬
Arrays.sort(arr);
// 내림차순 정렬
List<Integer> list = new ArrayList<>();
for (int num : arr) {
list.add(Integer.valueOf(num));
}
Collections.sort(list, Collections.reverseOrder());
/**
* Integer 정렬
*/
List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 5, 2, 4, 1));
// 오름차순 정렬
Collections.sort(list2);
// 내림차순 정렬
Collections.sort(list2, Collections.reverseOrder());
int를 내림차순 정렬하기 위해서 Integer로 바꿔준다.
import java.util.Arrays;
class Point implements Comparable{
int x;
int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return "Point{" +
"x=" + x +
", y=" + y +
'}';
}
@Override
public int compareTo(Object o) {
Point p = (Point)o;
return this.x-p.x; // x 좌표에 의해 오름차순 정렬
}
}
public class Main {
public static void main(String[] args) {
Point[] arr = {new Point(2,1),new Point(3,1),new Point(1,1)};
Arrays.sort(arr);
for (Point point : arr) {
System.out.println("point = " + point);
}
}
}
정렬 기준이 따로 없거나 직접 만든 클래스를 정렬하기 위해서는 Comparable
인터페이스를 구현해야 한다.
compareTo(Obejct o)
메소드를 구현해야 하는데, 기준은 아래와 같다
나 - o
: 오름차순
o - 나
: 내림차순
즉, 위의 예시에서 return p.x-this.x
로 변경하면 x 좌표에 의해 내림차순 정렬 한다.
잘 읽었습니다. 좋은 정보 감사드립니다.