Java에서 개체 비교를 지원하는 두 가지 주요 방법이 있습니다.
클래스에 사용자가 의존하는 자연 순서 (예 : 문자열의 사전 순 정렬)가있을 때 허용되는 Comparable
인터페이스를 구현하게 할 수 있습니다. 이를 위해서는 클래스가 인스턴스 간 비교 규칙을 정의하는 compareTo
메소드를 구현해야합니다.
표준 대안은 클래스에 Comparator
을 인스턴스화하고 compare
방법으로 비교 규칙을 지정하는 것입니다.
귀하의 경우, 후자의 옵션이 더 적합 해 보입니다. compare
메쏘드의 메카니즘은 상당히 간단합니다 : 클래스의 두 인스턴스를 취하고, 첫 번째가 두 번째보다 작 으면 음의 값을 반환하고, "더 크면"양수를 반환하고 "같으면"0을 반환합니다 ". marks
과 같이 비교하는 정수 기반 비교의 경우 빠른 차이는 숫자의 차이를 반환하는 것입니다.
당신이 당신의 Comparator
정의, 분류가 List
하고 지정된 Comparator
걸리는 방법 서명 말인가는 Collections.sort
메소드를 호출하는 것만 큼 간단 일단.
List<Emp> emps = new ArrayList<Emp>();
// populate list...
Comparator<Emp> empComparator = new Comparator<Emp>() {
public int compare(Emp e1, Emp e2) {
return e2.getMarks() - e2.getMarks();
}
};
Collections.sort(emps, empComparator);
그럼 어떻게 했습니까? 문제가 무엇입니까? – FunctionR
http://stackoverflow.com/questions/10302005/any-utility-method-to-sort-java-util-list-containing-pojos-of-the-kind-of-apache – ekiyanov