【发布时间】:2012-04-23 18:01:32
【问题描述】:
下面是比较器的代码,但是在 SortedMap.putAll() 之后,与源 Map 相比,SortedMap 的 Map Entries 数量较少。
有人可以帮忙吗?
Comparator<ArrayList> arrayListComparer = new Comparator<ArrayList>() {
@Override
public int compare(ArrayList arrA, ArrayList arrB) {
DateFormat formatter = new SimpleDateFormat("MMM-yyyy");
Date dateA = new Date();
Date dateB = new Date();
try {
dateA = formatter.parse(arrA.get(0).toString());
dateB = formatter.parse(arrB.get(0).toString());
} catch (ParseException ex) {
Logger.getLogger(ValueComparator.class.getName()).log(Level.SEVERE, null, ex);
}
if (dateA.before(dateB)) {
return 0;
} else if (dateA.after(dateB)) {
return 1;
} else {
return -1;
}
}
};
SortedMap sorted_map = new TreeMap(arrayListComparer);
sorted_map.putAll(map);
【问题讨论】:
-
运行时没有异常?
-
无论你的比较器逻辑是什么,这都不应该发生。你可能看错了。
-
你能给出你正在测试的数据集吗?
标签: java collections comparator sortedmap