对 Hashmap<String, Object> 中的 Object 的值进行排序

Sort the Object#39;s value inside the Hashmaplt;String, Objectgt;(对 HashmapString, Object 中的 Object 的值进行排序)
本文介绍了对 Hashmap<String, Object> 中的 Object 的值进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想按对象的值对 Hashmap 进行排序.在这种情况下,按国家/地区代码.

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

我的代码如下:

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?

推荐答案

这是一个返回 Set 的方法,该 Set 包含按其值排序的 Map.Entry 项.

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> 中的 Object 的值进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Show progress during FTP file upload in a java applet(在 Java 小程序中显示 FTP 文件上传期间的进度)
How to copy a file on the FTP server to a directory on the same server in Java?(java - 如何将FTP服务器上的文件复制到Java中同一服务器上的目录?)
FTP zip upload is corrupted sometimes(FTP zip 上传有时会损坏)
Enable logging in Apache Commons Net for FTP protocol(在 Apache Commons Net 中为 FTP 协议启用日志记录)
Checking file existence on FTP server(检查 FTP 服务器上的文件是否存在)
FtpClient storeFile always return False(FtpClient storeFile 总是返回 False)