Android:如何订购ArrayList <HashMap <String,String >>?

Pat*_*man 4 java android arraylist

我在地图中保存产品的详细信息,并添加ArrayList <HashMap <String,String >>并设置为自定义列表适配器.我需要按价格对价值进行排序.怎么实现呢?提前致谢.

Eld*_*abu 18

请使用以下代码:

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;
        }
    });
Run Code Online (Sandbox Code Playgroud)


pra*_*upd 7

你可以实现一个Comparator<Map<String, String>>Comparator<HashMap<String, String>>

如何对HashMaps的ArrayList分别保存几个键值对? 很好地回答:

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"));
Run Code Online (Sandbox Code Playgroud)

另请参阅如何在Java中对值进行排序?