相关疑难解决方法(0)

排序降序:Java Map

我想要做的是按值排序地图.我找了很多关于stackoverflow网站上可用的问题,并找到了以下解决方案,它做了我想要的但却错过了一件小事.

Link1:排序地图

但我遇到的问题是默认情况下按值按升序排序.我想按降序排序:

所以我做的是创建了一个实现比较器的类

class MyComparator implements Comparator {
    Map map;
    public MyComparator(Map map) {
        this.map = map;
    }
    public int compare(Object o1, Object o2) {
        return ((Integer) map.get(o2)).compareTo((Integer) map.get(o1));
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我将我的地图传递给树图,

MyComparator comp = new MyComparator(myMap);
Map<String, Integer> newMap = new TreeMap(comp);
newMap.putAll(myMap);
Run Code Online (Sandbox Code Playgroud)

这似乎是不好的方法,因为我觉得这是低效的.有没有办法在链接中更改解决方案,默认情况下按降序排序.

java sorting hashmap

34
推荐指数
3
解决办法
7万
查看次数

如何排序番石榴多图?(KEY = DATE)

我有一个

Multimap<Date,Invoice> multimap = ArrayListMultimap.create();
Run Code Online (Sandbox Code Playgroud)

来自番石榴.我想知道如何在多图中排序日期键.

目前,我这样做:

        Iterator<Date> dateItr = multimap.keySet().iterator();
        Set<Date> treeSet = new TreeSet<Date>(Collections.reverseOrder());
Run Code Online (Sandbox Code Playgroud)

然后我循环遍历treeSet迭代器.知道如何避免这种规避吗?

java sorting multimap guava

8
推荐指数
1
解决办法
5037
查看次数

按值数对Guava Multimap进行排序

如果我有一个Guava Multimap,我将如何根据给定密钥的值数对条目进行排序?

例如:

Multimap<String, String> multiMap = ArrayListMultimap.create();
multiMap.put("foo", "1");
multiMap.put("bar", "2");
multiMap.put("bar", "3");
multiMap.put("bar", "99");
Run Code Online (Sandbox Code Playgroud)

鉴于此,当迭代遍历multiMap时,我如何首先获得"bar"条目(因为"bar"有3个值而"foo"只有1个)?

java guava

7
推荐指数
2
解决办法
6198
查看次数

标签 统计

java ×3

guava ×2

sorting ×2

hashmap ×1

multimap ×1