相关疑难解决方法(0)

TreeMap按值排序

我想写一个比较器,让我按值而不是默认的自然顺序对TreeMap进行排序.

我试过这样的东西,却找不到出了什么问题:

import java.util.*;

class treeMap {
    public static void main(String[] args) {
        System.out.println("the main");
        byValue cmp = new byValue();
        Map<String, Integer> map = new TreeMap<String, Integer>(cmp);
        map.put("de",10);
        map.put("ab", 20);
        map.put("a",5);

        for (Map.Entry<String,Integer> pair: map.entrySet()) {
            System.out.println(pair.getKey()+":"+pair.getValue());
        }
    }
}

class byValue implements Comparator<Map.Entry<String,Integer>> {
    public int compare(Map.Entry<String,Integer> e1, Map.Entry<String,Integer> e2) {
        if (e1.getValue() < e2.getValue()){
            return 1;
        } else if (e1.getValue() == e2.getValue()) {
            return 0;
        } else {
            return -1;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想我要问的是:我可以Map.Entry传递给比较器吗?

java

124
推荐指数
6
解决办法
24万
查看次数

按值排序HashMap

我需要HashMap根据存储在其中的值对我进行排序.在HashMap包含存储在手机联系人的名字.

此外,我需要在对值进行排序时自动对键进行排序,或者您可以说键和值绑定在一起,因此值的任何更改都应该反映在键中.

HashMap<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"froyo");
map.put(2,"abby");
map.put(3,"denver");
map.put(4,"frost");
map.put(5,"daisy");
Run Code Online (Sandbox Code Playgroud)

所需输出:

2,abby;
5,daisy;
3,denver;
4,frost;
1,froyo;
Run Code Online (Sandbox Code Playgroud)

java sorting hashmap

122
推荐指数
8
解决办法
35万
查看次数

如何在Java中对HashMap进行排序

我们如何排序HashMap<key, ArrayList>

我想根据一个值来排序ArrayList.

java sorting hashmap

112
推荐指数
7
解决办法
37万
查看次数

基于键对hashmap进行排序

我在java中有以下hashmap:

{B046 = 0.0,A061 = 3.0,A071 = 0.0,B085 = 0.0,B075 = 3.0,B076 = 9.0,B086 = 3.0,B095 = 0.0,B096 = 0.0,A052 = 0.0,B066 = 0.0,B056 = 9.0,B065 = 0.0,B055 = 9.0}

我应该如何对hashmap进行排序,以便将Alphabet和数字数字考虑在内?

生成的hashmap应如下所示:

{A052 = 0.0,A061 = 3.0,A071 = 0.0,B046 = 0.0,B055 = 9.0,B056 = 9.0,B065 = 0.0,B066 = 0.0,B075 = 3.0,B076 = 9.0,B085 = 0.0,B086 = 3.0,B095 = 0.0,B096 = 0.0}

感谢帮助!

java hashmap

75
推荐指数
5
解决办法
13万
查看次数

如何在Java中使用SortedMap接口?

我有一个

 Map<Float, MyObject>
Run Code Online (Sandbox Code Playgroud)

根据浮点数保持地图排序的最佳方法是什么?

SortedMap最好的答案吗?TreeMap?我该如何使用它?

我只创建一次地图并替换MyObject频繁使用myMap.put()myMap.get().

java sortedmap

64
推荐指数
3
解决办法
16万
查看次数

排序后获取数组的索引?

假设用户输入一个数组,例如:

Array = {France, Spain, France, France, Italy, Spain, Spain, Italy}
Run Code Online (Sandbox Code Playgroud)

我确实知道它的长度

index阵列将是:

index = {0, 1, 2, 3, 4, 5, 6, 7}
Run Code Online (Sandbox Code Playgroud)

现在,使用后对其进行排序 Arrays.sort(Array);

newArray 将会像:

newArray = {France, France, France, Italy, Italy, Spain, Spain, Spain}
Run Code Online (Sandbox Code Playgroud)

newIndex将是:

newIndex = {0, 2, 3, 4, 7, 1, 5, 6}
Run Code Online (Sandbox Code Playgroud)

问题是:如何newIndex从输入数组中找到?

提前致谢

java

59
推荐指数
4
解决办法
6万
查看次数

如何按值对STL地图进行排序?

如何按值实现STL地图排序?

例如,我有一张地图m:

map<int, int> m;
m[1] = 10;
m[2] = 5;
m[4] = 6;
m[6] = 1;
Run Code Online (Sandbox Code Playgroud)

我想按照m价值对地图进行排序.所以,如果我打印地图,我想得到如下结果:

m[6] = 1
m[2] = 5
m[4] = 6
m[1] = 10
Run Code Online (Sandbox Code Playgroud)

我怎样才能以这种方式对地图进行排序?有什么方法可以用排序值处理键和值吗?

c++ sorting algorithm dictionary stl

49
推荐指数
4
解决办法
6万
查看次数

对LinkedHashMap进行排序

如果LinkedHashMap包含String和Integer,我如何根据其值对LinkedHashMap进行排序.所以我需要根据整数值对它进行排序.非常感谢

java linkedhashmap

40
推荐指数
2
解决办法
6万
查看次数

使用lambdas和stream按值排序映射

我是Java 8的新手,不知道如何使用流和它的排序方法.如果我有如下地图,如何按值对此地图进行排序,以便只使用Java 8获取前10个条目.

HashMap<String, Integer> map = new HashMap<String, Integer>();
        map.put("a", 10);
        map.put("b", 30);
        map.put("c", 50);
        map.put("d", 40);
        map.put("e", 100);
        map.put("f", 60);
        map.put("g", 110);
        map.put("h", 50);
        map.put("i", 90);
        map.put("k", 70);
        map.put("L", 80);
Run Code Online (Sandbox Code Playgroud)

我知道在Java 8之前,我们可以将这个链接排序:https://stackoverflow.com/a/109389/4315608

java java-8 java-stream

36
推荐指数
3
解决办法
6万
查看次数

排序降序: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万
查看次数