在HashMap< String,Object>中对对象的值进行排序 [英] Sort the Object's value inside the Hashmap<String, Object>

查看:152
本文介绍了在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 SortedSet< Map.Entry< K,V>> sortEntries = 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());
返回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&lt; String,Object&gt;中对对象的值进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆