對List集合嵌套了map集合的排序
阿新 • • 發佈:2019-01-04
如題,一個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"); // 我這裡是從大到小的排序,如果從小到大,n1和n2換一下位置就可以了 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"); // 我這裡是從大到小的排序,如果從小到大,n1和n2換一下位置就可以了 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);