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

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何從另一個(gè) Flux 中排除 Flux 中的所有元素

如何從另一個(gè) Flux 中排除 Flux 中的所有元素

鴻蒙傳說 2024-01-05 14:41:46
我有兩個(gè)Fluxs,一個(gè)用于成功元素,另一個(gè)用于保存錯(cuò)誤元素Flux<String> success= Flux.just("Orange", "Apple", "Banana","Grape", "Strawberry"); Flux<String> erroneous = Flux.just("Banana","Grape",);我如何過濾第一個(gè)Flux以排除第二個(gè)中的所有元素?
查看完整描述

1 回答

?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

您可能希望考慮將其收集Flux到一個(gè)集合中,緩存該集合,然后filterWhen按如下方式使用:


Mono<Set<String>> erroneousSet = erroneous.collect(Collectors.toSet()).cache();

Flux<String> filtered = success.filterWhen(v -> erroneousSet.map(s -> !s.contains(v)));

給出:


Orange

Apple

Strawberry

erroneous這不是最簡潔的解決方案(見下文),但它可以緩存內(nèi)容。在這個(gè)特定的例子中,這是一個(gè)沒有實(shí)際意義的問題,但如果這是一個(gè)現(xiàn)實(shí)世界的情況(不使用Flux.just()),那么erroneous可以在每個(gè)訂閱上重新計(jì)算,并且最終在性能方面可能會(huì)非常昂貴(并且不必要)。


或者,如果上述內(nèi)容在您的用例中確實(shí)并不重要,filterWhen()并且hasElement()可以更簡潔地使用,如下所示:


success.filterWhen(s -> erroneous.hasElement(s).map(x->!x))

或者使用reactor-extra:


success.filterWhen(s -> BooleanUtils.not(erroneous.hasElement(s)))


查看完整回答
反對(duì) 回復(fù) 2024-01-05
  • 1 回答
  • 0 關(guān)注
  • 178 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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