有没有一种方法可以在Java 8中使用Streams合并两个for循环?

Jee*_*a D 4 java java-8 java-stream

我有两个列表,其中一个是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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我目前正在使用for循环来验证该条件,但找不到使用Java 8流将其组合的更好的方法。

Nam*_*man 7

类似于anyMatch带有嵌套流的:

subProducers.stream()
            .filter(a -> values.stream()
                               .anyMatch(b -> a.getFirstName().contains(b)
                                           || a.getLastName().contains(b)))
            .collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)