亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

用流替換 for 循環以添加正確和不正確拼寫的單詞

用流替換 for 循環以添加正確和不正確拼寫的單詞

呼如林 2021-11-24 14:34:23
我試圖用一個流替換這個 for 循環,該流將正確拼寫的單詞添加到spelledCorrectly和錯誤拼寫的單詞添加到misspelled    for (String e : incoming) {        if (dict.contains(e.toLowerCase()))            spelledCorrectly.add(e.toLowerCase());        else if (!"".equals(e.toLowerCase().trim())) {            misspelled.add(e);        }    }這是我嘗試過的,但我在.map和.collect線上遇到錯誤,我不確定如何修復它們。    incoming.stream()        .filter(e -> dict.contains(e.toLowerCase()))        .map(spelledCorrectly::getId)        .collect(toList());    incoming.stream()        .filter(e -> !"".equals(e.toLowerCase().trim()))        .map(misspelled::getId)        .collect(toList());我應該使用不同的管道嗎?
查看完整描述

3 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

拉布是對的!但是為了正確的行為,我更新了一點:


incoming.stream()

        .filter(dict::contains)

        .forEach(spelledCorrectly::add);


incoming.stream()

        .filter(e -> !e.isEmpty() && !dict.contains(e.toLowerCase()))

        .forEach(misspelled::add);


查看完整回答
反對 回復 2021-11-24
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

您可以先清理您的單詞并過濾掉空的單詞,然后將它們收集到一個分區:


Map<Boolean, List<String>> result = incoming.stream()

    .map(String::trim)

    .map(String::toLowerCase)

    .filter(s -> !s.isEmpty())

    .collect(Collectors.partitioningBy(dict::contains));


查看完整回答
反對 回復 2021-11-24
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

雖然我認為 ernest(看起來他/她刪除了答案)曾經是一個很好的答案,但我決定將您的循環轉換為流,


    incoming.stream()

            .filter(dict::contains)

            .forEach(spelledCorrectly::add);


    incoming.stream()

            .filter(e -> !e.isEmpty())

            .forEach(misspelled::add);

這應該和你在 for 循環中做的事情一樣


查看完整回答
反對 回復 2021-11-24
  • 3 回答
  • 0 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號