У меня есть вопрос к реализации сортировки, что я сделал я создал классJava ArrayList Компаратор Реализация
@Override
public int compare(Object object1, Object object2) {
try {
Method method = object1.getClass().getDeclaredMethod("getStampDate");
Date value = (Date) method.invoke(object1);
Method method1 = object1.getClass().getDeclaredMethod("getStampDate");
Date value1 = (Date) method.invoke(object2);
//Date stamepDate1 = fetchStampDate(object1);
//Date stamepDate2 = fetchStampDate(object2);
if(value != null && value1 != null)
return compare(value, value1);
}
Но когда я звоню
public void columnsList(List<TableRecord> records){
Collections.sort(records, new StampDateComparator());
}
компаратора вызывается только один раз, что я ожидал , TableRecord
содержат переменную даты, этот метод сортировки будет сортироваться по дате, но Компаратор вызывает только один раз, что я делаю неправильно?
Для тестирования я добавил две записи в списке
List<TableRecord> records = new ArrayList<TableRecord>();
records.add(new MyClass());
records.add(new MyClass1());
Но это называется только один раз
Сколько записей в вашем списке? –
Он вызывается один раз для каждого элемента в списке. – duffymo
@KevinBowersox, извините, но я хотел бы знать, как это зависит от количества записей в списке. –