在HashMap< String,Object>中对对象的值进行排序 [英] Sort the Object's value inside the Hashmap<String, Object>
本文介绍了在HashMap< String,Object>中对对象的值进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想按对象的值排序一个Hashmap。
KEY OBJECT
字符串LoyaltyCountry
- 国家名称
- 国家代码
- country loc
我的代码如下:
public static HashMap< String,LoyaltyCountry> loyaltyCountrySortMap(HashMap< String,LoyaltyCountry> loyaltyCountryMap){
if(loyaltyCountryMap!= null){
List keys = new ArrayList();
keys.addAll(loyaltyCountryMap.keySet());
Collections.sort(键,新比较器< LoyaltyCountry>(){
public int compare(LoyaltyCountry o1,LoyaltyCountry o2){
return o1.getCountryName()。compareTo(o2.getCountryName ));
}
});
}
返回loyaltyCountryMap;
}
如何正确执行此操作?
解决方案
这是一个返回一个包含Map.Entry项目的Set的方法。 $ p> public static
new Comparator< Map.Entry< K,V>>(){
@Override
public int compare Map.Entry< K,V> e1,Map.Entry< K,V> e2){
return e1.getValue()。compareTo(e2.getValue());
}
});
sortedEntries.addAll(map.entrySet());
返回sortedEntries;
}
I want to sort an Hashmap by the object's value. In this case, by country code.
KEY OBJECT
String LoyaltyCountry
- country name
- country code
- country loc
My code is as follows:
public static HashMap<String, LoyaltyCountry> loyaltyCountrySortMap(HashMap<String, LoyaltyCountry> loyaltyCountryMap) {
if (loyaltyCountryMap != null) {
List keys = new ArrayList();
keys.addAll(loyaltyCountryMap.keySet());
Collections.sort(keys, new Comparator<LoyaltyCountry>() {
public int compare(LoyaltyCountry o1, LoyaltyCountry o2) {
return o1.getCountryName().compareTo(o2.getCountryName());
}
});
}
return loyaltyCountryMap;
}
How can I do this correctly?
解决方案
Here is a method that returns a Set containing the Map.Entry items sorted by their value.
public static <K, V extends Comparable<? super V>> SortedSet<Map.Entry<K, V>> entriesSortedByValues(Map<K, V> map) {
SortedSet<Map.Entry<K, V>> sortedEntries = new TreeSet<Map.Entry<K, V>>(
new Comparator<Map.Entry<K, V>>() {
@Override
public int compare(Map.Entry<K, V> e1, Map.Entry<K, V> e2) {
return e1.getValue().compareTo(e2.getValue());
}
});
sortedEntries.addAll(map.entrySet());
return sortedEntries;
}
这篇关于在HashMap< String,Object>中对对象的值进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文