나는 두 개의 날짜 필드가있는 클래스는 말을했다 :컬렉션 동시에
class TestData {
Date activation;
Date timeStamp;
}
내가 activation
날짜를 기준으로 위 클래스의 목록을 정렬 할 그들이에 다음 동일한 경우 timestamp
즉 max (활성화) 및 max (시간 스탬프) 기준. 내가 시도
코드는 어떤 도움을 크게 감상 할 수
public class CollectionSort {
public static void main(String[] args) {
List<TestData> testList = new ArrayList<TestData>();
Collections.sort(testList, new Comparator<TestData>() {
@Override
public int compare(TestData t1, TestData t2) {
int result = 0;
if (t1.getActivation().before(t2.getActivation())) {
result = 1;
}
return result;
}
});
System.out.println("First object is " + testList.get(0));
}
}
에만 최대 (활성화)를 가져 follws 같습니다.
감사합니다.
'Comparator' 구현이 음의 정수 (대개'-1')를 반환 할 수 없다면 거의 틀림없이 잘못된 것입니다! 'compare (a, b)'가 양수'int '를 반환하면'compare (b, a)'**는 반드시 음수 값을 반환해야합니다! –
compare 메서드에서 TestData 또는 instanceof 테스트에 대한 캐스트가 필요하지 않습니다. 제네릭 (Java 5) 이후 캐스트가 자동으로 수행되므로 메서드 매개 변수는 이미 TestData 유형입니다. –