第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在 java 8 中使用帶有 null 和空檢查的平面圖合并多個列表?

如何在 java 8 中使用帶有 null 和空檢查的平面圖合并多個列表?

汪汪一只貓 2022-11-30 13:23:42
我正在合并多個列表,然后使用Stream.of(..)& 然后執(zhí)行flatMap相同的操作以收集組合列表,如下所示:class Foo{    List<Entity> list1;    List<Entity> list2;    List<Entity> list3;    //getters & setters}Foo foo = getFoo();Predicate<Entity> isExist = //various conditions on foo ;List<Bar> bars = Stream        .of(foo.getList1(), foo.getList2(), foo.getList3())        .flatMap(Collection::stream)        .filter(isExist)        .map(entity -> getBar(entity))        .collect(Collectors.toList());第一個問題:Stream.of(..)檢查 nonNull&嗎notEmpty?如果 ans 為否,則第二個問題:我怎樣才能對我在上面的代碼中得到的所有內(nèi)容執(zhí)行nonNull&notEmpty檢查?這樣每當(dāng)這三個列表發(fā)生合并時,它基本上都會忽略&來避免?listsfoonullempty listNullPointerException
查看完整描述

1 回答

?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗 獲得超9個贊

Stream

    .of(foo.getList1(), foo.getList2(), foo.getList3())

    .filter(Objects::nonNull)

    ....

或者正如 Holger 所指出并在flatMapjava-doc 中指定的那樣:


如果映射流為空,則使用空流。


因此,你可以這樣做:


 Stream

    .of(foo.getList1(), foo.getList2(), foo.getList3())

    .flatMap(x -> x == null? null : x.stream())


查看完整回答
反對 回復(fù) 2022-11-30
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號