1. 程式人生 > >對List集合嵌套了map集合的排序

對List集合嵌套了map集合的排序

如題,一個List<Map<String, String>> Lists = new ArrayList<Map<String, String>>();怎麼才能對它進行排序呢?通過函式Collections.sort進行排列:
private String[] namelist = {"Id", "UserId", "UserNo", "Name", "TypeId", "Money", "Remark", "PassCode", "Order_no", "AddTime"};
private String[] keylist = {"id", "userid"
, "username", "name", "type", "money", "remark", "passcode", "ordernumber", "addtime"};

id是我map裡面的欄位,是自增的
 Collections.sort(str, new Comparator<Map<String, String>>() {
                            @Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
                                String n1=o1.get("id"
); String n2=o2.get("id"); // 我這裡是從大到小的排序,如果從小到大,n1n2換一下位置就可以了 return n2.compareTo(n1); } });



然後使用增強for迴圈遍歷出整個map集合所有資料的
List<Map<String, String>> list=new ArrayList<Map<String, String>>();
for (Map<String,String> map:str){
    list.add(map);
}




我這裡的資料是要匹配到listview上的,所以新增到新的list之後,直接用介面卡直接適配上去
                    public void doResults(List<Map<String, String>> str) {
                            if (moneyList != null) {
                                moneyList.clear();
}

                        Collections.sort(str, new Comparator<Map<String, String>>() {
                            @Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
                                String n1=o1.get("id");
String n2=o2.get("id");
//                                我這裡是從大到小的排序,如果從小到大,n1n2換一下位置就可以了
return n2.compareTo(n1);
}
                        });
List<Map<String, String>> list=new ArrayList<Map<String, String>>();
                        for (Map<String,String> map:str){
                            list.add(map);
}

                            moneyList.addAll(list);
adapter = new MoneyAdapter(MoneyChargeActivity.this, moneyList);
mXListView.setAdapter(adapter);