为什么哈希图无法正确排序?

时间:2019-03-01 12:34:14

标签: java sorting hashmap

我想按键对我的HashMap进行排序。但是无法正确排序。有想法吗?

谢谢

我的完整代码

如下所示:

private static Map<String, Integer> allList = new HashMap<>();
public static String factors(int n) {
    // your code
    for(int i=2;i<n/2;i++){
        getPrimes(n, i);
    }

    Map<String, Integer> result2 = new LinkedHashMap<>();        
    allList.entrySet().stream()
            .sorted(Map.Entry.comparingByKey())
            .forEachOrdered(x -> result2.put(x.getKey(), x.getValue()));
    String result="";
    for (Map.Entry<String, Integer> entry : result2.entrySet()) {

        if(entry.getValue()>1)
        {
            result = result+"("+entry.getKey()+"**"+entry.getValue()+")";
        }
        else result=result+ "("+entry.getKey()+")";
    }

    return result2;
}

public static Map<String,Integer> getPrimes(int n, int divide)
{
   //part code of put element to allList

}


public static boolean isPrime(int num)
{
        ....
}

当我看起来result2像下面但未排序时。

result2

1 个答案:

答案 0 :(得分:2)

您的键是一个字符串,其排序方式不同于整数。由于提供的信息有限,我认为问题就在这里。