亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 8 List<Foo> 到 Map<String, Map<String

Java 8 List<Foo> 到 Map<String, Map<String

Cats萌萌 2021-12-22 19:22:17
我有以下課程:public class Foo {    private String areaName;    private String objectName;    private String lineName;}現在我想將 a 轉換List<Foo>為Map<String, Map<String, List<String>>>. 我找到了這個答案,它幫助我開發了以下代碼:Map<String, Map<String, List<String>>> testMap = foos.stream().collect(Collectors.groupingBy(e -> e.getAreaName(),        Collectors.groupingBy(e -> e.getObjectName(), Collectors.collectingAndThen(Collectors.toList(),                e -> e.stream().map(f -> f.getLineName())))));此代碼的唯一問題是它應該轉換為List<String>. 我找不到轉換Foo為List那部分的方法。另一種方法導致Map<String, Map<String, List<Foo>>>:Map<Object, Map<Object, List<Foo>>> testMap = ventures.stream().collect(Collectors.groupingBy(e -> e.getAreaName(),        Collectors.groupingBy(e -> e.getObjectName(), Collectors.toList())));我需要做什么來改變,以獲得Map<String, Map<String, List<String>>>從List<Foo>?
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

為了獲得List與Stream元素類型不同的類型,您應該將Collectors.mapping收集器鏈接到groupingBy:


Map<String, Map<String, List<String>>> testMap = 

    foos.stream()

        .collect(Collectors.groupingBy(Foo::getAreaName,

                                       Collectors.groupingBy(Foo::getObjectName,

                                                             Collectors.mapping(Foo::getLineName,

                                                                                Collectors.toList()))));



查看完整回答
反對 回復 2021-12-22
  • 1 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號