如何正确实现Treemap的Comparator? 这应该: 1.按行的长度按降序对单词进行排序。 2.字母长度相等的单词。
class Test implements Comparator<String> {
public static SortedMap<String, String> doSort(String str) {
Comparator<String> comparator = new Test();
SortedMap<String, String> map = new TreeMap<>(comparator);
//do something to input String
return map;
}
@Override
public int compare(String o1, String o2)
{
return o2.length() - o1.length();
}
}
那够了吗? 如何在第二回合添加字母排序?
答案 0 :(得分:1)
假设您使用的是Java 8+,可以使用lambda(例如
)编写Comparator<String> comparator = (a,b) -> {
int r = Integer.compare(a.length(), b.length());
if (r != 0) {
return r;
}
return a.compareTo(b);
};
在Java 7及更早版本中,它可能会执行
Comparator<String> comparator = new Comparator<String>() {
public int compare(String a, String b) {
int r = Integer.compare(a.length(), b.length());
if (r != 0) {
return r;
}
return a.compareTo(b);
}
};