Comparator Comparable

김예지·2023년 1월 9일
0

컬렉션 인터페이스를 사용할 때 정렬기준을 사용할 때가 있다 이 때 사용하는 인터페이스가 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

profile
나만의 방식을 찾아가는 신입신입 개발자

0개의 댓글