方式一
-
将两个 List 转换为 Stream 类型;
-
调用 Stream 的 filter 方法,将不同的对象过滤出来;
-
将过滤出的不同的对象转换为 List 类型。
List<String> list1 = Arrays.asList("A", "B", "C", "D");
List<String> list2 = Arrays.asList("B", "C", "E", "F", "A", "D");
List<String> diff = list1.stream().filter(item -> !list2.contains(item)).collect(Collectors.toList());
List<String> diff1 = list2.stream().filter(item -> !list1.contains(item)).collect(Collectors.toList());
diff.addAll(diff1);
diff.forEach(x -> System.out.println(x));
上述代码中,将两个 List 类型的对象 list1 和 list2 转换为 Stream 类型,并调用 filter 方法筛选出不同的对象。最后通过 collect 方法将不同的对象转换为 List 类型,并输出结果。
方式二
List<String> list1 = Arrays.asList("apple", "banana", "orange", "pear