java - 自定义树形图排序

标签 java sorting treemap

我需要使用 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/

相关文章:

c - 对给定值进行排序的最佳算法

sorting - 如果在范围内,则按不同字段进行条件ElasticSearch排序

r - 在ggplot2中使用圆形包装可视化分层数据?

c# - C# 中的 Java TreeMap 等效项?

java - 基于键的平均 TreeMap 值

java - EditText 到 String 返回 Null

java - 如何在android中实用地在不同语言字符串资源文件夹之间切换?

java - 按优先级对任务进行排序

java - 从intellij插件开发中运行gradle任务

java - 无法使用 FileInputStream 复制 PDF 文件