Я столкнулся с этим старым кодом в процессе добавления java-дженериков, и я не понимаю, что здесь происходит и что нужно изменить.Нужна помощь в понимании этого метода
static void sortByDate(List list) throws Exception
{
class MyComparator implements Comparator {
public int compare(Object o1, Object o2) {
RQEntry o11 = (RQEntry) o1;
RQEntry o22 = (RQEntry) o2;
int cc = ((String)o11.getHandledDate()).compareTo(o22.getHandledDate());
return (cc < 0 ? -1 : cc > 0 ? 1 : 0);
}
};
Collections.sort(list, new MyComparator());
}
Вопрос 1: Может кто-нибудь объяснить, как этот метод выполняет сравнение?
Вопрос 2: Какие параметры типового типа следует передавать в соответствии со стандартами Java 5?
Вопрос 3: Как работает метод compare
, просто создав новый экземпляр MyComparator
?
Update:
Просто нашел эту ссылку, которая, наконец, помогли мне понять этот код: http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html
читать Java док компаратора. это объяснит alot –
Справа и прочитайте javadoc для 'Collections.sort'. – pamphlet
Что возвращает 'o22.getHandledDate()'? Если он не возвращает 'String', тогда код не должен компилироваться. И если он возвращает 'String', а имя метода немного неуместно. –