【发布时间】:2009-10-12 02:40:30
【问题描述】:
我有一个未排序的链表。为了对其进行排序,我想我会将这些值放入提供了比较器的 TreeSet 中,然后将这些值作为新的链表返回。然而,它失败了。
比较器:
public class SortSpeciesByCommonName implements Comparator<Species> {
/**
* a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
*/
@Override
public int compare(Species arg0, Species arg1) {
return arg0.getName().compareTo(arg1.getName()); //arg.getName() is String
}
}
排序功能:
public static LinkedList<Species> sortedAnimals(LinkedList<Species> animals) {
TreeSet<Species> sortedBreeds = new TreeSet<Species>(new SortSpeciesByCommonName());
sortedBreeds.addAll(animals);
return new LinkedList<Species>(sortedBreeds);
}
在测试这些值时,一切似乎仍处于插入顺序中。
【问题讨论】:
-
请添加物种类和一些测试用例。我已将物种类简化为字符串,一切正常。
标签: java sorting linked-list comparator treeset