【发布时间】:2015-08-05 07:35:02
【问题描述】:
我有一个 HashMap,其中包含 未排序的值
[{cols=2, row=2}, {cols=0, row=2}, {cols=6, row=1}, {cols=8, row=1}, {cols=4, row=1}
, {cols=10, row=1}, {cols=2, row=1}, {cols=0, row=1}, {cols=8, row=4}, {cols=6, row=2},
{cols=8, row=2}, {cols=4, row=2}, {cols=6, row=4}, {cols=2, row=4}, {cols=10, row=2},
{cols=4, row=4}, {cols=10, row=4}, {cols=0, row=4}]
当我尝试使用 cols 进行排序时,我得到了类似 Sorted value
[{cols=0, row=2}, {cols=0, row=1}, {cols=0, row=4}, {cols=10, row=1}, {cols=10, row=2},
{cols=10, row=4}, {cols=2, row=2}, {cols=2, row=1}, {cols=2, row=4}, {cols=4, row=1},
{cols=4, row=2}, {cols=4, row=4}, {cols=6, row=1}, {cols=6, row=2}, {cols=6, row=4},
{cols=8, row=1}, {cols=8, row=4}, {cols=8, row=2}]
它应该产生 0,2,4,6,8,10 而不是这些它产生 0,10,2,4,6,8
我的 hashmap 排序代码是
Collections.sort(upperlist, mapComparatorCols)
public Comparator<Map<String, String>> mapComparatorCols = new Comparator<Map<String, String>>() {
public int compare(Map<String, String> m1, Map<String, String> m2) {
return m1.get("cols").compareTo(m2.get("cols"));
}
};
【问题讨论】: