使用java流比较两个字符串列表

Muh*_*zad 6 java list java-stream

我有两个列表 A 和 B。都有数百万个元素。我想比较并获取列表 A 中但不在列表 B 中的所有元素。下面是获取元素的低效方法。

   if (!B.containsAll(A)) {
        for (Integer id : A) {
            if (!B.contains(id)) {
                System.out.println(id);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种有或没有流的有效方法来获取元素

在这方面的帮助表示赞赏。

谢谢

Guy*_*Guy 2

你不需要比较

List<Integer> c = new ArrayList<>(a);
c.removeAll(b);
Run Code Online (Sandbox Code Playgroud)

如果您不介意丢失原始列表数据

a.removeAll(b);
Run Code Online (Sandbox Code Playgroud)