我有两个列表,其中一个列表为String类型,另一个列表为某些实体对象。如何遍历这两个列表或如何使用Java 8进行比较
List<Admin> admin= new ArrayList<>();
for (Admin ah : subProducers) {
for (String value : values) {
if (ah.getFirstName().contains(value) || ah.getLastName().contains(value)) {
admin.add(ah);
}
}
}
我目前正在使用for循环来验证该条件,但找不到使用Java 8流将其组合的更好的方法。
答案 0 :(得分:7)
类似于anyMatch
的嵌套流:
subProducers.stream()
.filter(a -> values.stream()
.anyMatch(b -> a.getFirstName().contains(b)
|| a.getLastName().contains(b)))
.collect(Collectors.toList())