我想对此HashMap
进行排序:
HashMap<Integer,Integer> hp=new HashMap<Integer,Integer>();
TreeMap<Integer,Integer> stm = new TreeMap<Integer,Integer>();
stm.putAll(hp);
在价值反向排序中。
如果值相同,我将使用key作为下一个条件。 价值是相反的,但关键不是。
答案 0 :(得分:0)
我们可以通过引用TreeMap的值排序来实现HashMap的排序。 我试着写一个样本与你分享。
public class HashMapTest {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("c", "ccccc");
map.put("a", "aaaaa");
map.put("b", "bbbbb");
map.put("d", "ddddd");
List<Map.Entry<String,String>> list = new ArrayList<Map.Entry<String,String>>(map.entrySet());
Collections.sort(list,new Comparator<Map.Entry<String,String>>() {
//Ascending order
public int compare(Entry<String, String> o1,
Entry<String, String> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
for(Map.Entry<String,String> mapping:list){
System.out.println(mapping.getKey()+":"+mapping.getValue());
}
}
resule是
a:aaaaa
b:bbbbb
c:ccccc
d:DDDDD
答案 1 :(得分:0)
为什么不从地图中获取entrySet并尝试使用根据需要创建比较器对其进行排序。当它被排序时,只需创建一个新的map实例并将已排序的集迭代到地图中。它有点贵,但做你需要的。
如果您发现任何问题,请执行此操作。告诉我,我会给你代码。 :)