【发布时间】:2015-01-21 21:26:49
【问题描述】:
如果我想通过 CSVInputHandler 类上名为 Order 的属性对下面的 Collection 进行排序,我该怎么做?我尝试了最底层的那个,但没有运气。错误为The method sort(List<T>, Comparator<? super T>) in the type Collections is not applicable for the arguments (Collection<CSVInputHandler>, Comparator<CSVInputHandler>)。
对象
Collection<CSVInputHandler> csvInputHandlers = new ArrayList<>(csvInputHandlerMap.values());
试过
Comparator<CSVInputHandler> comparator = new Comparator<CSVInputHandler>() {
public int compare(CSVInputHandler c1, CSVInputHandler c2) {
return c1.Order < c2.Order;
}
};
Collections.sort(csvInputHandlers, comparator);
【问题讨论】:
-
Order的类型是什么?您从您的compare()方法返回 0,这是毫无意义的 -
Collections.sort 需要 List 而不是数组。我建议您阅读文档并阅读您遇到的编译错误。
-
我只是使用 0 作为测试来消除语法错误。
-
我知道,但是你如何排序一个集合。
标签: java list sorting arraylist collections