自定义树图排序
Custom treemap sorting
我需要使用地图集合,我决定使用树图(因为排序键)。但是,treemap 按字母顺序从 "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());
我需要使用地图集合,我决定使用树图(因为排序键)。但是,treemap 按字母顺序从 "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());