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

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

Java11中的謂詞過濾所有元素

Java11中的謂詞過濾所有元素

白板的微信 2021-03-30 17:09:45
我打算使用Java11。學習一種新的方法Predicate.not,我找到了當前的代碼,只找到了cat family:List<String> animals = List.of("cat", "leopard", "dog", "lion", "horse");Predicate<String> cats = a -> !a.equals("dog") && !a.equals("horse");Set<String> filterCat = animals.stream().filter(cats).collect(Collectors.toSet());System.out.println(filterCat);輸出是:豹貓貓現(xiàn)在,我正在嘗試使用新方法,并且輸出結(jié)果不正確。我該如何糾正?我做錯了什么?我后來的代碼:Predicate<String> updatedCatFilter = Predicate.not(a -> a.equals("dog") && a.equals("horse"));Set<String> catFamily = animals.stream().filter(updatedCatFilter).collect(Collectors.toSet());System.out.println(filterCat);但這現(xiàn)在輸出了我所有的清單。馬,豹,貓,狗,獅子
查看完整描述

2 回答

?
江戶川亂折騰

TA貢獻1851條經(jīng)驗 獲得超5個贊

我做錯了什么?


您似乎錯過了基本的德摩根定律,該定律指出:


!(a || b) == !a && !b


!(a && b) == !a || !b

我該如何糾正?


因此,您應(yīng)該更改代碼以使用


Predicate.not(a -> a.equals("dog") || a.equals("horse")); // !(a || b)

它應(yīng)該等同于您現(xiàn)有的代碼


Predicate<String> cats = a -> !a.equals("dog") && !a.equals("horse");

也可以看成是:


Predicate<String> notDog = a -> !a.equals("dog");

Predicate<String> notHorse =  a -> !a.equals("horse");

Predicate<String> cats = notDog.and(notHorse); // !a && !b


查看完整回答
反對 回復 2021-04-14
?
翻過高山走不出你

TA貢獻1875條經(jīng)驗 獲得超3個贊

您可以這樣寫:


List<String> animals = List.of("cat", "leopard", "dog", "lion", "horse");

Set<String> filterCat = animals.stream()

    .filter(Predicate.not("dog"::equals).and(Predicate.not("horse"::equals)))

    .collect(Collectors.toSet());

System.out.println(filterCat);


查看完整回答
反對 回復 2021-04-14
  • 2 回答
  • 0 關(guān)注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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