【发布时间】:2022-01-06 21:36:55
【问题描述】:
return Arrays.stream(partNumbers.get())
.filter(partNumber -> Objects.nonNull(partNumber.getDescription()))
.filter(partNumber -> partNumber.getDescription().toLowerCase().contains(rateAbbr.toLowerCase()))
.findFirst();
上面的代码会尝试从partNumbers 列表中查找partNumber,其中partNumber 的描述包含“rateAbbr”。 此代码一直有效,直到“rateAbbr”是一个字符串,但现在它已更改为 rateAbbrs 列表,我需要找到一个其描述包含任何 rateAbbrs 的部件号。我用流尝试过,但还没有运气。任何帮助表示赞赏。
【问题讨论】:
-
.filter(partNumber -> rateAbbr.stream().anyMatch(partNumber.getDescription().toLowerCase()::contains)) -
谢谢。只是为了区分大小写 -partNumbers.stream().filter(partNumber -> rateAbbrs.stream().map(String::toLowerCase).anyMatch(partNumber.getDescription().toLowerCase()::contains))。 findFirst();
标签: java iterator java-stream predicate