按日期排序HashMap

Bil*_*l F 7 java sorting hashmap xpages

在Java类中,我有一个按日期重新编译现有HashMap的方法.HashMap是一种类型<String, Object>,其中Object包含一个名为expPayDate的字段,键字符串是一个序列号变成一个字符串.所以我需要遍历sourceMap中的项目并找到具有最新日期的项目然后复制它以正确的顺序到tempMap.我的问题是确定具有最新日期的项目的最佳方法是什么.

pat*_*art 12

你最好的选择将是使用的SortedMap比较器接口.

这是一个例子:

public SortedMap<String, Object> getSortedMap(Map<String, Object> originalMap) {
    SortedMap<String, Object> tmpMap = new TreeMap<String, Object>(new Comparator<String>(){
        @Override
        public int compare(String key1, String key2) {
            //logic for comparing dates
        }           
    });
    tmpMap.putAll(originalMap);
    return tmpMap;
}
Run Code Online (Sandbox Code Playgroud)


小智 6

使用TreeMap代替HashMap。插入时会自动排序。

Map< Date, Object> m = new TreeMap< Date, Object>();
Run Code Online (Sandbox Code Playgroud)

另外,如果您有一个现有的HashMap并想基于它创建一个TreeMap,请将其传递给构造函数:

Map< Date, Object> sortedMap = new TreeMap< Date, Object>(m);
Run Code Online (Sandbox Code Playgroud)

希望对您有帮助。

  • 日期是值的属性,而不是键。 (2认同)