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

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

從內部列表java 8的對象列表中獲取ID列表

從內部列表java 8的對象列表中獲取ID列表

慕森王 2022-07-06 19:15:31
我有實體類列表:public class Entity{    private long id;        private List<InnerEnity> data;    public long getId() {        return id;    }    public List<InnerEnity> getData() {        return data;    }}這是 InnerEnity 類public class InnerEnity {    private long id;        private String data;    public long getId() {        return id;    }    public String getData() {        return data;    }}我需要的是 InnerEnity id 列表。為了解決這個問題,我正在嘗試這樣的事情:-List innerEnityIds = listOfEnity.stream().map(sys -> sys.getData().stream().map(obj->obj.getId().collect(Collectors.toList())));
查看完整描述

2 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

在這里你需要flatMap

List<Long> innerEnityIds = 
    listOfEnity.stream() // Stream<Entity>
               .flatMap(sys -> sys.getData().stream().map(InnerEntity::getId)) // Stream<Long>
               .collect(Collectors.toList()); // List<Long>

或者,您可以將flatMap步驟分解為flatMapmap

List<Long> innerEnityIds = 
    listOfEnity.stream() // Stream<Entity>
               .flatMap(sys -> sys.getData().stream()) // Stream<InnerEntity>
               .map(InnerEntity::getId) // Stream<Long>
               .collect(Collectors.toList()); // List<Long>


查看完整回答
反對 回復 2022-07-06
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

我認為這可能會奏效(尚未測試):

List<Long> innerEntityIds = listOfEnity.stream()
    .flatMap(e -> e.getData().stream()) // 1
    .map(ie -> ie.getId())  // 2
    .collect(Collectors.toList()); // 3

1) 使用 flatMap 將所有內部實體流式傳輸到一個流中 2) 將每個內部實體映射到其 id 3) 將 id 收集到一個列表中


查看完整回答
反對 回復 2022-07-06
  • 2 回答
  • 0 關注
  • 835 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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