拉姆达语法_map的常用方法

拉姆达语法_map的常用方法importorg.apache.commons.collections4.MapUtils;@OverridepublicList<Map<String,Object>>getGuidelineSceneStatistical(StringdeptCode){List<Map<String,Object>>mapList=newArrayList<>();List<

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

import org.apache.commons.collections4.MapUtils;

 @Override
    public List<Map<String, Object>> getGuidelineSceneStatistical(String deptCode) {
        List<Map<String, Object>> mapList = new ArrayList<>();

        List<Map<String, Object>> mapSceneList = serviceStatisticalMapper.getAllGuidelineScene();
        if (mapSceneList != null && mapSceneList.size() > 0) {
     
			//对map进行操作	
            mapList = mapSceneList.stream().filter(item -> "root".equals(MapUtils.getString(item, "parentCode"))).collect(Collectors.toList());
            if (mapList != null && mapList.size() > 0) {         
                List<Map<String, Object>> mapGuideline = serviceStatisticalMapper.getAllSceneGuideline(deptCode);
              
                for (int i = 0; i < mapList.size(); i++) {
                    Map<String, Object> map = mapList.get(i);
                    String code = MapUtils.getString(map, "sceneCode");
                    List<String> childCode = mapSceneList.stream().filter(item -> code.equals(MapUtils.getString(item, "parentCode")))
                            .map(item -> MapUtils.getString(item, "sceneCode"))
                            .collect(Collectors.toList());
                    double value = 0;
                    if (childCode != null && childCode.size() > 0) {
                        if (mapGuideline != null && mapGuideline.size() > 0) {
                            int total = mapGuideline.size();
							//使用contains方法进行查询数量
							
                            long codeTotal = mapGuideline.stream().filter(item -> childCode.contains(MapUtils.getString(item, "sceneCode"))).count();
                            
                            //BigDecimal 的用法
                            value = codeTotal == 0 ? 0 : new BigDecimal((float) codeTotal * 100 / total).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        }
                    }
                    map.put("value", value);
                }
            }
        }
        return mapList;
    }

这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193086.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号