gpt4 book ai didi

java - 对 Hashmap 内的对象值进行排序

转载 作者:行者123 更新时间:2023-12-02 09:08:40 25 4
gpt4 key购买 nike

我想按对象的值对 Hashmap 进行排序。在本例中,按国家/地区代码。

  KEY              OBJECT                        
String LoyaltyCountry
- country name
- country code
- 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(keys, new Comparator<LoyaltyCountry>() {
public int compare(LoyaltyCountry o1, LoyaltyCountry o2) {
return o1.getCountryName().compareTo(o2.getCountryName());
}
});
}

return loyaltyCountryMap;
}

我怎样才能正确地做到这一点?

最佳答案

以下方法返回一个 Set,其中包含按其值排序的 Map.Entry 项。

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;
}

关于java - 对 Hashmap<String, Object> 内的对象值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10214104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com