1.Comparable<T>
class Data implements Comparable<Data>{
int time;
int layer;
public Data(int time, int layer) {
this.time = time;
this.layer = layer;
}
@Override
public int compareTo(Data o) {
if (this.time > o.time) {
return 1;
} else if (time == o.time) {
if (layer < o.layer) {
return 1;
} else {
return -1;
}
} else {
return -1;
}
}
}
임의의 두 수를 설정하고 양수를 리턴하면 자리를 바꾼다.
ex) this = 3, o = 1 -> 3이 1보다 크므로 1을 리턴하면 자리가 바뀌어 1 ,3 이 된다.(오름차순 정렬)
2.Comparator
public class Main {
public static void main(String[] args) throws IOException {
String[] arr = {"Hello","My", "Name","IS","MunHyeok"};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
Arrays.sort(arr,(o1,o2)-> {//양수면 자리를 바꾼다?
return o2.length() - o1.length();
});
System.out.println(Arrays.toString(arr));
}
}
위와 같이 임의의 두 수를 설정하고 양수를 리턴하면 자리를 바꾼다.
ex) o1 = 1, o2 = 3 -> o2 - o1는 2이므로 양수를 리턴하면 자리가 바뀌어 3 ,1 이 된다.(내림차순 정렬)
'Java' 카테고리의 다른 글
[Java] 정규표현식 (기본) (0) | 2021.03.21 |
---|