-1

我正在从服务器获取 JSON 数据并能够通过代码解析 JSON 数据。现在将其存储在 hashmap 中,然后添加到 arraylist 并在 listview 中显示一切似乎工作正常。

  HashMap<String, String> map = new HashMap<String, String>();
                                         map.put(Constants.KEY_REFERENCE,p.reference);                      map.put(Constants.KEY_NAME, p.name);
map.put("distance","p.distance");
ArrayListItems.add(map);

现在,当我在列表视图中显示数据时它工作正常,但现在我想按升序对距离进行排序,至少从顶部开始。任何帮助将不胜感激。在此先感谢

现在我可以排序了,但是当我显示距离时出现了问题,它显示 1.23、1.45、2.39、3.56,然后显示 0.38、0.56。

它不对以 0 开头的值进行排序

所以请帮助我。

4

2 回答 2

2

我会看看Collections.sort();你如何使用Comparable接口来排序HashMap(通过覆盖compare()方法)。下面的文章非常有用,因为如果我没记错的话,有两种不同的方法可以对 HashMap 进行排序;一个是它的键,另一个是它的值。

于 2013-09-16T11:22:57.770 回答
2

你可以使用这个:

Collections.sort(arrayList, 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 0;
    }
});
于 2013-09-16T11:23:33.583 回答