我有一个ArrayList<HashMap<String,String>>
我想对它进行排序。我的ArrayList
Logcat 中的输出如下:
[{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}]
我想根据“diff”值按升序对列表进行排序,以便 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"));
}
});
没有成功。任何帮助将不胜感激
最佳答案
当前,您正在尝试比较两个 String
对象:
return lhs.get("diff").compareTo(rhs.get("diff"));
您真正想做的是比较返回的整数,因此您需要执行以下操作:
return (Integer.parseInt(lhs.get("diff")) - Integer.parseInt(rhs.get("diff")));
关于java - 排序 ArrayList HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26203803/