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

来源:互联网 发布:上海软件项目经理工资 编辑:程序博客网 时间:2024/05/21 17:32
如题,一个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);
原创粉丝点击