我想在 Java 中对哈希图(递减)进行排序



我想对这个HashMap进行排序:

HashMap<Integer,Integer> hp=new HashMap<Integer,Integer>();
TreeMap<Integer,Integer> stm = new TreeMap<Integer,Integer>();
stm.putAll(hp);

值反向排序。

如果值相同,我将使用 key 作为下一个条件。 值是相反的,但键不是。

我们可以通过引用 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:中交

d:ddddd

为什么不从地图中获取条目集,并尝试根据需要使用创建比较器对其进行排序。排序后,只需创建一个新的 map 实例并将排序集迭代到映射中。它有点贵,但可以满足你的需要。

如果您在实现此过程中发现任何问题。告诉我我会给你代码。:)

最新更新