我需要使用 map 集合,并且我决定使用树状图(因为已排序的键)。但是,树形图按字母顺序对我的列表进行排序,先是“A -> Z”,然后是“a -> z”。例如 输入 = zgaZGA 输出= AGZagz
有人知道如何从小写开始排序吗? (我的意思是输出 = agzAGZ)
我正在用 Java 语言(Java SE8)编写 感谢您的帮助!
最佳答案
您可以提供自己的定制Comparator
:
public class LowerCaseFirstComaparor implements Comparator<Character> {
@Override
public int compare (Character c1, Character c2) {
if (Character.isLowerCase(c1)) {
if (Character.isLowerCase(c2)) {
return c1.compareTo(c2);
} else {
return -1;
}
} else if (Character.isLowerCase(c2)) {
return 1;
} else {
return c1.compareTo(c2);
}
}
然后在创建TreeMap
时使用它:
Map<Character, SomeClass> map = new TreeMap<>(new LowerCaseFirstComaparor());
关于java - 自定义树形图排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27853189/