2012-08-27 96 views
3

我将产品的详细信息保存在地图中,并添加到ArrayList中< HashMap < String,String >>并设置到自定义列表适配器。我需要按价格对价值进行排序。如何实现它?提前致谢。Android:如何订购ArrayList <HashMap <String,String >>?

+0

尝试谷歌搜索在地图排序。 – JMelnik

+0

可能的重复[如何对HashMap的数组列表持有几个键值对?](http://stackoverflow.com/questions/5369573/how-sort-an-arraylist-of-hashmaps-holding-several-key - 价值对 - 每个) –

回答

15

普莱斯使用下面的代码:

ArrayList< HashMap< String,String >> arrayList=populateArrayList(); 
    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; 
     } 
    }); 
+0

+1和谢谢你,你的代码帮助我(自第一次以来接受) –

1

,你可以简单地使用这个在一个数组列表对象的自定义排序,

public class MyComparator implements Comparator<MyObject> { 
    @Override 
    public int compare(MyObject o1, MyObject o2) { 
     return o1.getYOUROBJ1STR.compareTo(o2.getYOUROBJ2STR); 
    } 
} 

让我知道如果你仍然面临的问题进行排序地图

+0

+1你的代码引导我 –

7

您可以实现Comparator<Map<String, String>>Comparator<HashMap<String, String>>

How sort an ArrayList of HashMaps holding several key-value pairs each? 回答得好:

class MapComparator implements Comparator<Map<String, String>>{ 
    private final String key; 

    public MapComparator(String key){ 
     this.key = key; 
    } 

    public int compare(Map<String, String> first, 
         Map<String, String> second){ 
     // TODO: Null checking, both for maps and values 
     String firstValue = first.get(key); 
     String secondValue = second.get(key); 
     return firstValue.compareTo(secondValue); 
    } 
} 

... 
Collections.sort(arrayListHashMap, new MapComparator("value")); 

也期待在How to sort a Map on the values in Java?

+0

+1你的代码引导我 –

+0

不错的代码..它帮助的感谢.. +1也 –

1

可以通过比较和集合类一起做,如果它是一个ArrayList的

检查的这link

由于情况Lars vogel

相关问题