使用另一个所有数组元素过滤数组 - Java 8

Mus*_*afa 3 java java-8 java-stream

我有一个像这样的字符串数组:

firstArray = {"1", "2", "3", "4" };
Run Code Online (Sandbox Code Playgroud)

我有第二个数组,如下所示:

secondArray = {"2", "5", "6", "7" };
Run Code Online (Sandbox Code Playgroud)

如果我想使用一个元素进行流式传输,我可以这样做:

firstArray.stream()
    .filter(element -> !element.equals("2"))
    .forEach((element) -> {
        finalArrayList.add(element);
    }
);
Run Code Online (Sandbox Code Playgroud)

我如何将第一个数组与第二个数组一起传输 java 8 中的所有元素?

Nic*_*tto 6

如果您想使用 只保留第二个数组中没有的第一个数组的元素Stream API,您可以这样做:

List<String> result = Arrays.stream(firstArray)
    .filter(el -> Arrays.stream(secondArray).noneMatch(el::equals))
    .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)