java的lamdba表达式如何对两个list去除
时间: 2024-03-21 16:38:06 浏览: 70
可以使用Java 8中的Stream API和lambda表达式来对两个List进行去重操作,具体代码如下所示:
```java
List<String> list1 = Arrays.asList("apple", "banana", "orange", "pear");
List<String> list2 = Arrays.asList("apple", "orange", "grape", "peach");
List<String> result = Stream.concat(list1.stream(), list2.stream())
.distinct()
.collect(Collectors.toList());
System.out.println(result); // 输出:[apple, banana, orange, pear, grape, peach]
```
在这个例子中,我们首先使用`Stream.concat()`方法将两个List连接起来,然后使用`distinct()`方法去重,最后使用`collect()`方法将结果收集到一个新的List中。
相关问题
java的lamdba表达式实现两个list的差集
可以使用Java 8中的Stream API和lambda表达式来实现两个List的差集操作,具体代码如下所示:
```java
List<String> list1 = Arrays.asList("apple", "banana", "orange", "pear");
List<String> list2 = Arrays.asList("orange", "peach", "grape");
List<String> result = list1.stream()
.filter(item -> !list2.contains(item))
.collect(Collectors.toList());
System.out.println(result); // 输出:[apple, banana, pear]
```
在这个例子中,我们首先使用`stream()`方法将List转换为一个Stream流,然后使用`filter()`方法过滤出在`list1`中存在但是在`list2`中不存在的元素,最后使用`collect()`方法将结果收集到一个新的List中。
java的lamdba表达式实现两个数组的差集
可以使用Java 8中的Stream API和lambda表达式来实现两个数组的差集操作,具体代码如下所示:
```java
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = {3, 4, 5, 6, 7};
int[] result = Arrays.stream(arr1)
.filter(i -> Arrays.stream(arr2).noneMatch(j -> j == i))
.toArray();
System.out.println(Arrays.toString(result)); // 输出:[1, 2]
```
在这个例子中,我们首先使用`Arrays.stream()`方法将数组转换为一个IntStream流,然后使用`filter()`方法过滤出在`arr1`中存在但是在`arr2`中不存在的元素,最后使用`toArray()`方法将结果收集到一个新的数组中。
阅读全文