List<TestBean> testList = new ArrayList<TestBean>(testMap.values());
Comparator<TestBean> c = Collections.reversOrder();
Collections.sort(testList, c);
위의 예처럼
1. 먼저 대상 맵의 value 만을 가지고 리스트를 하나 만든다.
2. 어떻게 비교할것인지 정한다 (여기선 내림차순)
3. Collections.sort 메소드에 위에서 만든 대상 리스트와 비교 방법을 넣어준다.
이렇게 하면 리스트가 정렬되어있다
여기서 리스트가 직접 정의한 클래스를 대상으로 비교를 해야하는 경우에는
해당 클래스가 Comparable 인터페이스를 구현하고, compareTo() 메소드를 오버라이드 하고 있어야 한다
위의 예를 들면(여기서는 해당 객체의 count를 가지고 비교를 하려고 한다)
public TestBean implements Comparable{
private int count;
public int compareTo(Object arg0){
TestBean comparer = (TestBean) arg0;
return this.count - comparer.count;
}
}
'Developer > Java' 카테고리의 다른 글
Swingv GUI 컴포넌트 (0) | 2012.09.01 |
---|---|
Swing vs AWT (0) | 2012.08.22 |
Java GUI - JOptionPane (0) | 2012.07.12 |
배열의 복사 (0) | 2012.07.04 |
클래스변수, 클래스메서드 (0) | 2012.07.04 |