我在添加 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:如何仅通过创建 MyComparator
的新实例来调用 compare
方法?
更新:
刚刚找到这个链接,它最终帮助我理解了这段代码:http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html
最佳答案
如果您有 List<RQEntry>
您现在可以使用此比较器对其进行排序。
RQEntry
将根据对象的处理日期进行比较。
这就是这里调用所做的事情。
Collections.sort(list, new MyComparator());
在幕后,当排序算法需要比较时
两个RQEntry对象,它会调用compare
你的方法
比较器。仅此而已。
关于java - 需要帮助理解此方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21732357/