java - 以 HashMap<string,integer> 作为其类型对 TreeSet 进行排序

标签 java sorting dictionary tree

例如,

TreeSet<HashMap<String,Integer>> myTree = new  TreeSet<HashMap<String,Integer>>();

我想根据 HashMap 中的整数值对这个树集进行排序。我们有什么好的方法可以做到这一点吗?

最佳答案

您需要设计一个自定义比较器并将其作为构造函数提供给您的 TreeSet

public static Set<HashMap<String, Integer>> myTree = new TreeSet<>(
                new Comparator<HashMap<String, Integer>>() {
                    @Override
                    public int compare(HashMap<String, Integer> o1,
                            HashMap<String, Integer> o2) {
                        return (o2.get(key)).compareTo(o1.get(key));
        }
});

只需将 key 替换为您的整数的键即可。

如果你希望它以相反的方式排序,

替换,

o2.get(key)).compareTo(o1.get(key)

与,

o1.get(key)).compareTo(o2.get(key)

关于java - 以 HashMap<string,integer> 作为其类型对 TreeSet 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28308341/

相关文章:

java - 字符串到 LocalDate

java - 实例化时定义其方法/字段的对象称为什么?

java - 使用包依赖项从命令行创建 .class 文件

java - 如何通过覆盖 IText 中的原始文件来更改现有 PDF 的 PDF 版本?

排序程序中的 Java 错误

python - 将 dict 转换为 defaultdict

Python:第一个元素的索引小于反向排序列表中的阈值

c++ - 如何在保持原始索引的同时对 vector 的 vector 进行排序?

json - 如何从字典数组中按键选择数据?

python - 如何获取列表中字典的索引