【问题标题】:Android sort a Hashmap in arraylistAndroid对arraylist中的Hashmap进行排序
【发布时间】:2013-09-16 11:20:58
【问题描述】:

我正在从服务器获取 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 开头的值进行排序

所以请帮帮我。

【问题讨论】:

标签: android listview arraylist hashmap


【解决方案1】:

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

【讨论】:

    【解决方案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;
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-20
      • 2012-03-16
      • 2011-09-20
      • 1970-01-01
      • 2016-08-15
      • 2015-04-22
      • 2012-09-28
      • 1970-01-01
      相关资源
      最近更新 更多