컬렉션 인터페이스를 사용할 때 정렬기준을 사용할 때가 있다 이 때 사용하는 인터페이스가 Comparator Comparable이 있다 int로 값을 반환하는데 객체가 값으면 0 비교하는 값보다 작으면 음수, 크면 양수로 반환한다
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
public class Ex100 {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(new score(80 , "fjie"));
list.add(new score(20 , "sdfs"));
list.add(new score(180 , "wre"));
list.add(new score(90 , "dfsf"));
list.add(new score(30 , "grgeg"));
Collections.sort(list);
Iterator it = list.iterator();
System.out.println("======스코어 순위======");
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
class score implements Comparable{
int score;
String id;
public score(int score, String id) {
super();
this.score = score;
this.id = id;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return id + "님 스코어 : " + score;
}
@Override
public int compareTo(Object o) { // 내림차순 구현
score s = (score) o;
return s.score - score;
// return score - s.score; 오름차순
}
}
======스코어 순위======
wre님 스코어 : 180
dfsf님 스코어 : 90
fjie님 스코어 : 80
grgeg님 스코어 : 30
sdfs님 스코어 : 20