List排序 List<Map>

試著忘記壹切 提交于 2019-11-30 14:59:21

待排序的List格式List<Map>

    升序

         对Map中的Int属性排序

 public static List<Map<String, Object>> listContainMapSortByIntAsc(List<Map<String, Object>> list) {

        Collections.sort(list, new Comparator<Map<String, Object>>() {
            @Override
            public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                /*name1是从你list里面拿出来的一个*/
                int name1 = Integer.parseInt(o1.get("allCounts").toString());
                /*name1是从你list里面拿出来的第二个name*/
                int name2 = Integer.parseInt(o2.get("allCounts").toString());
                int value = name2 - name1;
                return value;
            }
        });
        return list;
    }

     降序

         对Map中的String属性排序

 public static List<Map<String, Object>> listContainMapSortByStringDesc(List<Map<String, Object>> list, String orderByParams) {

        Collections.sort(list, new Comparator<Map<String, Object>>() {
            @Override
            public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                /*name1是从你list里面拿出来的一个*/
                String name1 = o1.get(orderByParams).toString();
                /*name1是从你list里面拿出来的第二个name*/
                String name2 = o2.get(orderByParams).toString();
                return name2.compareTo(name1);
            }
        });
        return list;
    }

说明在这里只示范了Int类型升序,String类型降序,若调节升降序,只需改变   代码中(name2 - name1)的顺序即可。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!