java 两个list过滤
时间: 2023-09-01 10:11:03 浏览: 85
四个有用的Java过滤器收藏
可以使用Java 8的流(Stream)和Lambda表达式来实现两个List的过滤,具体如下:
假设我们有两个List,一个是sourceList,一个是filterList,需要将sourceList中的元素按照filterList进行过滤,只留下filterList中包含的元素。
```java
List<String> sourceList = Arrays.asList("apple", "banana", "orange", "pear", "peach");
List<String> filterList = Arrays.asList("apple", "orange", "peach");
List<String> resultList = sourceList.stream()
.filter(filterList::contains)
.collect(Collectors.toList());
```
上述代码中,我们通过stream()方法将sourceList转换成一个Stream对象,然后使用filter()方法对Stream中的元素进行过滤,只留下filterList中包含的元素。最后使用collect()方法将过滤后的元素转换成List对象。
另外,如果需要对两个List进行完全匹配,即只留下两个List都包含的元素,可以使用如下代码:
```java
List<String> resultList = sourceList.stream()
.filter(filterList::contains)
.filter(sourceList::contains)
.collect(Collectors.toList());
```
这里使用了两个filter()方法,分别对两个List进行过滤,只留下两个List都包含的元素。最后得到的resultList就是过滤后的结果。
阅读全文