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

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

為什么 Java 8 流 forEach 循環(huán)在使用 sorted() 方法后重復(fù)結(jié)果

為什么 Java 8 流 forEach 循環(huán)在使用 sorted() 方法后重復(fù)結(jié)果

蕪湖不蕪 2022-09-07 21:28:04
在使用字謎的練習(xí)中,我發(fā)現(xiàn)執(zhí)行后的代碼在輸出中有重復(fù)項,具體取決于類中方法的使用時刻。sorted()Stream當(dāng)我在做排序之前和方法filter()forEach()        words.stream()                .sorted()                .filter(s1 -> !alreadyFound.contains(s1) && words.stream()                        .filter(s2 -> isAnagram.apply(s1, s2))                        .count() == maxAnagrams)                .forEach(s1 -> {它給出了這些結(jié)果: abel able bale bela elba alger glare lager large regal angel angle galen glean lange caret carte cater crate trace elan lane lean lena neal evil levi live veil vile但是當(dāng)我使用方法之后和之前的方法時sorted()filter()forEach()        words.stream()                .filter(s1 -> !alreadyFound.contains(s1) && words.stream()                        .filter(s2 -> isAnagram.apply(s1, s2))                        .count() == maxAnagrams)                .sorted()然后它給出了這些結(jié)果: abel able bale bela elba abel able bale bela elba alger glare lager large regal angel angle galen glean lange angel angle galen glean lange abel able bale bela elba abel able bale bela elba caret carte cater crate trace caret carte cater crate trace caret carte cater crate trace caret carte cater crate trace elan lane lean lena neal abel able bale bela elba evil levi live veil vile angel angle galen glean lange alger glare lager large regal angel angle galen glean lange alger glare lager large regal elan lane lean lena neal angel angle galen glean lange alger glare lager large regal elan lane lean lena neal elan lane lean lena neal evil levi live veil vile evil levi live veil vile elan lane lean lena neal alger glare lager large regal caret carte cater crate trace evil levi live veil vile evil levi live veil vile似乎在第二種方法程序中復(fù)制結(jié)果并將已經(jīng)找到的單詞添加到輸出中。我想知道為什么會發(fā)生這種情況?
查看完整描述

1 回答

?
喵喔喔

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

我不是100%確定,但我相信你看到一些這種行為的原因是因為你在哪里對流進行排序,是因為流經(jīng)流的數(shù)據(jù)的“時間”。


您的前額是將它們添加到已找到的單詞列表中 - 但請記住,在調(diào)用前額之前不會評估任何數(shù)據(jù)。這意味著這些項目僅在整個集合流經(jīng)前臺時才被添加到列表中。在 foreach 之前發(fā)生的主篩選器可能會看到一些重復(fù),因為它嘗試按尚未真正存在的列表進行篩選。


排序是給它帶來麻煩,因為它可以阻止數(shù)據(jù)流 - 在看到每個元素之前,不能保證對列表進行排序。它不完全是一個終止操作,但它確實會延遲事情,直到所有元素通過。懶惰評估是一件很棒的事情,但它可能很棘手,通常你真的需要確保像排序這樣的東西是你想要的,然后再走這條路。


綜上所述,如果您試圖避免重復(fù),那么有更好的方法可以做到這一點(stream具有一個功能,可以很好地為您完成)。.distinct()


我已經(jīng)編寫了您在此處嘗試執(zhí)行的其他實現(xiàn),該實現(xiàn)產(chǎn)生了以下結(jié)果。


abel able bale bela elba 

alger glare lager large regal 

angel angle galen glean lange 

caret carte cater crate trace 

elan lane lean lena neal 

evil levi live veil vile 

如果你愿意,我可以和你分享這個 - 但我得到的印象是,這是為了某些性質(zhì)的任務(wù),你正在自己挖掘它。如果是這樣的話,對你有好處。


如果您想要一些提示或從某人那里反彈問題,請隨時給我發(fā)DM,我會很樂意為您提供幫助。之后,我將編輯這篇文章并發(fā)布我用來生成上面的塊的代碼。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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