Nic*_*ner 5 java interface treemap comparator sortedmap
我有一个对象列表,我需要根据其中一个字段的属性进行排序.我听说SortedMap和Comparators是最好的方法.
编辑: 这段代码给我一个错误:
private TreeMap<Ktr> collection = new TreeMap<Ktr>();
Run Code Online (Sandbox Code Playgroud)
(Ktr实施Comparator<Ktr>).Eclipse说它期待类似的东西TreeMap<K, V>,所以我提供的参数数量不正确.
Comparable使用现有对象实现,尽管您可以创建一个Comparator并将其传递给SortedMap.Comparable和Comparator是两个不同的东西; 实现一类Comparable比较this另一目的,而实施的一类Comparator比较两个其他对象.Comparable,则不需要将任何特殊内容传递给构造函数.打电话吧new TreeMap<MyObject>().(编辑:除了当然Maps需要两个通用参数,而不是一个.傻我!)Comparator,则将该类的实例传递给构造函数.TreeMapJavadocs说.编辑:在重新阅读问题时,这一切都没有意义.如果你已经有了一个列表,那么明智的做法就是实现Comparable然后调用Collections.sort它.不需要地图.
一点点代码:
public class MyObject implements Comparable<MyObject> {
// ... your existing code here ...
@Override
public int compareTo(MyObject other) {
// do smart things here
}
}
// Elsewhere:
List<MyObject> list = ...;
Collections.sort(list);
Run Code Online (Sandbox Code Playgroud)
与之一样SortedMap,您可以创建一个Comparator<MyObject>并将其传递给Collections.sort(List, Comparator).
| 归档时间: |
|
| 查看次数: |
40494 次 |
| 最近记录: |