我想按键对我的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像下面但未排序时。
答案 0 :(得分:2)
您的键是一个字符串,其排序方式不同于整数。由于提供的信息有限,我认为问题就在这里。