2012-08-27 132 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

相關問題