List中Map 根据key去重

public List<Map<String, String>> getAttrActions(String ns, String category, String ci) {


        String sql = "SELECT ID AS value,NAME AS label FROM IES.CMDB_META_ACTION " +
                "WHERE NS = '" + ns + "' AND CATEGORY = '" + category + "' AND CI = '" + ci + "'";
        List<Map<String, Object>> mapList = runner.executeSQL(sql);
        List<Map<String, Object>> attrActionsList = new ArrayList<>();
        DMMetaEnum.MetaAttrActions[] attrActions = DMMetaEnum.MetaAttrActions.values();
        for (DMMetaEnum.MetaAttrActions attrAction : attrActions) {
            HashMap<String, Object> map = new HashMap<>(1);
            map.put(VALUE, attrAction.getValue());
            map.put(LABEL, attrAction.getLabel());
            attrActionsList.add(map);
        }
        //合并
        mapList.addAll(attrActionsList);
        List<Map<String, String>> newList = new ArrayList<>();
        for (Map<String, Object> map : mapList) {
            Map<String, String> newMap = new HashMap<>();
            newMap.put(VALUE, map.get(VALUE).toString());
            newMap.put(LABEL, map.get(LABEL).toString());
            newList.add(newMap);
        }
        //去重(map中的key和value都是String类型)
        newList = newList.stream().collect(
                Collectors.collectingAndThen(Collectors.toCollection(
                        () -> new TreeSet<>(Comparator.comparing(m -> m.get(VALUE)))), ArrayList::new));
        return newList;
    }

版权声明:本文为qq_44261638原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。