list集合stream流相减
时间: 2023-09-03 11:15:31 浏览: 101
ansys命令流中文说明
如果你想实现两个List集合的stream流相减(即从一个List集合中删除另一个List集合中的元素),可以使用Java 8中的stream流和Lambda表达式来完成。
具体步骤如下:
1. 将第二个List集合转换为Set集合,以便更方便地进行元素的删除操作。
2. 调用第一个List集合的stream()方法,使用filter()方法过滤掉第二个List集合中存在的元素。
3. 使用collect()方法将过滤后的元素转换为一个新的List集合。
下面是一个示例代码:
```
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
Set<Integer> set = new HashSet<>(list2);
List<Integer> result = list1.stream()
.filter(e -> !set.contains(e))
.collect(Collectors.toList());
System.out.println(result); // [1, 2]
```
在这个示例中,list1中包含了1到5这些整数,list2中包含了3到7这些整数。我们需要从list1中删除list2中包含的元素,即3、4、5。我们首先将list2转换为set,然后使用stream()方法过滤掉包含在set中的元素,最后使用collect()方法将过滤后的元素转换为一个新的List集合,即[1, 2]。
阅读全文