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

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

java:減少與任何匹配與包含

java:減少與任何匹配與包含

溫溫醬 2022-09-22 19:19:42
 List<Boolean> results = new ArrayList<>(); results.add(true); results.add(true); results.add(true); results.add(false); if (results.contains(false)) {     System.out.println(false); } else {     System.out.println(true); } System.out.println(results.stream().reduce((a, b) -> a && b).get()); //System.out.println(!results.stream().anyMatch(a -> a == false)); System.out.println(!results.stream().anyMatch(a -> !a));輸出:假假假僅供參考,結果是地圖+收集操作的結果List<Job> jobs;List<Boolean> results = job.stream().map(j -> j.ready()).collect(Collector.toList())如果我選擇“減少”或“任何匹配”,則不必從地圖操作中收集結果。從布爾值列表的結果來看,如果至少有一個 false,我只想返回 false。我可以通過減少或任何匹配來做到這一點。我有點不喜歡從減少的可選,我有點不喜歡我必須否定任何匹配使用兩者有什么優(yōu)點/缺點嗎?
查看完整描述

3 回答

?
鴻蒙傳說

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

看來,您將布爾值收集到列表中的唯一原因是,您可以檢查某些布爾值是否是:false

如果我選擇減少或任何匹配,我不必從地圖操作中收集結果 [...]如果至少有一個假的,我只想返回假的。

如果是這種情況,那么您絕對應該考慮直接的基于流的方法:

return jobs.stream().allMatch(Job::ready);



查看完整回答
反對 回復 2022-09-22
?
楊__羊羊

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

你問利弊。 是最快和最簡單的。 是這里最麻煩/最復雜的。但是你的任務很簡單,所以這真的重要嗎?也許選擇使用哪種方法的更好關鍵是:“哪一種更好可讀,更易于理解和可維護?在實際的軟件開發(fā)中,這種干凈的代碼方法通常比在運行時中搜尋微秒或源代碼中的行數(shù)更重要。但話又說回來,我會說這里是最好的。ContainsReducecontains

System.out.println(!results.contains(false));

那么你實際上和你一樣,我肯定會更喜歡它來完成這個具體任務。但同樣,真正的差異非常小,我更關心的是該軟件的未來維護者的可讀性和可理解性。anyMatch(a -> !a)containsreduce


查看完整回答
反對 回復 2022-09-22
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

System.out.println(results.stream().reduce((a, b) -> a && b).get());

這將始終返回 false,因為 list() 至少有 1 個 。resultsfalse

&&將始終檢查兩個值是否為 true,以將其傳遞為 。true

 System.out.println(!results.stream().anyMatch(a -> !a));

Stream 返回此流(結果)的任何元素是否與提供的謂詞匹配。當你這樣做的時候,結果在最初為真之后最終會是假的。anyMatch(Predicate predicate)(a -> !a)!results


查看完整回答
反對 回復 2022-09-22
  • 3 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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