3 回答
TA贡献1836条经验 获得超13个赞
拉布是对的!但是为了正确的行为,我更新了一点:
incoming.stream()
.filter(dict::contains)
.forEach(spelledCorrectly::add);
incoming.stream()
.filter(e -> !e.isEmpty() && !dict.contains(e.toLowerCase()))
.forEach(misspelled::add);
TA贡献1815条经验 获得超12个赞
您可以先清理您的单词并过滤掉空的单词,然后将它们收集到一个分区:
Map<Boolean, List<String>> result = incoming.stream()
.map(String::trim)
.map(String::toLowerCase)
.filter(s -> !s.isEmpty())
.collect(Collectors.partitioningBy(dict::contains));
TA贡献1833条经验 获得超4个赞
虽然我认为 ernest(看起来他/她删除了答案)曾经是一个很好的答案,但我决定将您的循环转换为流,
incoming.stream()
.filter(dict::contains)
.forEach(spelledCorrectly::add);
incoming.stream()
.filter(e -> !e.isEmpty())
.forEach(misspelled::add);
这应该和你在 for 循环中做的事情一样
添加回答
举报