stream流去除一个list中另一个list包含的元素
时间: 2023-08-06 11:01:50 浏览: 120
假设你有两个列表list_A和list_B,如果你想从list_A中删除list_B中包含的所有元素,可以使用以下代码:
```
list_A = [1, 2, 3, 4, 5]
list_B = [2, 4]
list_A = [x for x in list_A if x not in list_B]
print(list_A) # 输出 [1, 3, 5]
```
在这个例子中,列表解析语句 `[x for x in list_A if x not in list_B]` 迭代list_A中的每个元素,如果它不在list_B中,就保留它。最后,将筛选后的结果赋值给list_A。
希望这能回答你的问题!
相关问题
java stream流去除一个list中另一个list包含的元素
假设你有两个列表listA和listB,如果你想从listA中删除listB中包含的所有元素,可以使用Java 8 Stream API中的filter()方法和contains()方法来实现,如下所示:
```
List<Integer> listA = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> listB = new ArrayList<>(Arrays.asList(2, 4));
listA = listA.stream().filter(i -> !listB.contains(i)).collect(Collectors.toList());
System.out.println(listA); // 输出 [1, 3, 5]
```
在这个例子中,我们使用filter()方法对listA进行筛选,只保留不包含在listB中的元素。然后使用collect()方法将筛选后的结果重新收集为一个新的列表,最后将其赋值给listA。
希望这能回答你的问题!
java stream 从一个list去除另一个list的元素
假设有两个List对象,分别为list1和list2,可以使用Java 8中的Stream API通过以下方式从list1中去除list2中的元素:
```java
List<String> list1 = Arrays.asList("A", "B", "C", "D");
List<String> list2 = Arrays.asList("B", "D");
List<String> result = list1.stream()
.filter(item -> !list2.contains(item))
.collect(Collectors.toList());
System.out.println(result); // 输出结果为 [A, C]
```
在这个例子中,我们使用了Stream中的filter方法,过滤掉了list1中与list2重复的元素,最后将结果收集到一个新的List中。注意,这里假设List中元素类型为String,如果是其他类型需要做相应的修改。
阅读全文