哆啦A梦丶幻想 2021-04-01 11:37 采纳率: 0%
浏览 521
已结题

JDK lambda 转换Map<String, List<List<String>>> 转换

    class B_F {
        private String B_id;
        private String F_id;


        public String getB_id() {
            return B_id;
        }

        public void setB_id(String b_id) {
            B_id = b_id;
        }

        public String getF_id() {
            return F_id;
        }

        public void setF_id(String f_id) {
            F_id = f_id;
        }

        public B_F(String B_id, String F_id) {
            this.B_id = B_id;
            this.F_id = F_id;
        }
    }

    class B {
        private String id;
        private String name;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public B(String id, String name) {
            this.id = id;
            this.name = name;
        }
    }

    class C {
        private String id;
        private String B_id;
        private String name;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getB_id() {
            return B_id;
        }

        public void setB_id(String b_id) {
            B_id = b_id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public C(String id, String b_id, String name) {
            this.id = id;
            B_id = b_id;
            this.name = name;
        }
    }

    @Test
    public void testAA() {
        List<B_F> b_fList = new ArrayList<>();
        B_F b_f1 = new B_F("b1", "F1");
        B_F b_f2 = new B_F("b2", "F1");
        B_F b_f3 = new B_F("b3", "F1");
        B_F b_f4 = new B_F("b4", "F2");
        b_fList.add(b_f1);
        b_fList.add(b_f2);
        b_fList.add(b_f3);
        b_fList.add(b_f4);



        List<B> bList = new ArrayList<>();
        B b1 = new B("b1", "bName1");
        B b2 = new B("b2", "bName2");
        B b3 = new B("b3", "bName3");
        bList.add(b1);
        bList.add(b2);
        bList.add(b3);
        Map<String, B> bMap = bList.stream().collect(Collectors.toMap(B::getId, Function.identity()));


        Map<String, List<B>> bfListBMap = b_fList.stream()
                .collect(Collectors.groupingBy(
                        B_F::getF_id,
                        Collectors.mapping(bf -> bMap.get(bf.getB_id()), Collectors.toList())));



        List<C> cList1 = new ArrayList<>();
        C c1 = new C("c1", "b1", "cName1");
        C c2 = new C("c2", "b1", "cName2");
        C c3 = new C("c3", "b1", "cName3");
        C c4 = new C("c4", "b2", "cName4");
        C c5 = new C("c5", "b2", "cName5");
        C c6 = new C("c6", "b3", "cName4");
        C c7 = new C("c7", "b3", "cName5");
        cList1.add(c1);
        cList1.add(c2);
        cList1.add(c3);
        cList1.add(c4);
        cList1.add(c5);
        cList1.add(c6);
        cList1.add(c7);

        Map<String, List<C>> cMap = cList1.stream().collect(Collectors.groupingBy(C::getB_id));

        // 这个lambda怎么转换为, Map<String, List<C>>
        Map<String, List<List<C>>> bfListCMap = b_fList.stream()
                .collect(Collectors.groupingBy(
                        B_F::getF_id,
                        Collectors.mapping(bf -> cMap.get(bf.getB_id()), Collectors.toList())));
        
    }

// 这个lambda, Map<String, List<List<C>>> 怎么转换为 Map<String, List<C>>

 

 

 

  • 写回答

5条回答 默认 最新

  • Eglusaxie 2021-04-01 14:15
    关注
    Map<String,List<String>> res = new HashMap<>();
    map.forEach((k,v)->{
    List<String> newV = new ArrayList<>();
    v.forEach(newV::addAll);
    res.put(k,newV);
    });
    评论

报告相同问题?

悬赏问题

  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表