我有一个ArrayList<HashMap<String,String>>
,我想对它排序。我在logcat的ArrayList
输出是这样的:排序ArrayList散列图
[{num=0, username=p, startPoliPro=A, finalPoliPro=B, diff=0},
{num=1, username=e, startPoliPro=C, finalPoliPro=D, diff=548.0Km},
{num=2, username=e, startPoliPro=E, finalPoliPro=F, diff=3.0Km}]
我想基于由升序“差异”值列表进行排序,这样的logcat必须是这样的:
[{num=0, username=p, startPoliPro=A, finalPoliPro=B, diff=0},
{num=2, username=e, startPoliPro=E, finalPoliPro=F, diff=3.0Km},
{num=1, username=e, startPoliPro=C, finalPoliPro=D, diff=548.0Km}]
我看了很多类似的话题,并尝试类似
Collections.sort(final_itinList, new Comparator<HashMap< String,String >>() {
@Override
public int compare(HashMap<String, String> lhs, HashMap<String, String> rhs) {
// Do your comparison logic here and retrn accordingly.
return lhs.get("diff").compareTo(rhs.get("diff"));
}
});
没有成功。任何帮助,将不胜感激
感谢您的回复。鉴于距离是双重格式,我已将您的代码更改为Double.parseDouble,但出现错误“返回类型与Comparator>不兼容。 >)”。任何建议; –
2014-10-05 16:16:51
解决。非常感谢。我使用“返回Double.compare(Double.parseDouble(lhs.get(”diff“)),Double.parseDouble(rhs.get(”diff“)));” – 2014-10-05 16:22:08