java分别遍历list1与list2,遍历的值set到同一vo,将vo添加到list并返回
时间: 2024-12-21 14:28:44 浏览: 7
在Java中,你可以通过流(Stream API)来遍历两个List并将它们的共同值合并到一个VO对象中,最后再将这些VO对象添加到另一个List中。假设你的VO类是UserVo,并且List1和List2存储的是User对象,以下是示例代码:
```java
import java.util.*;
import java.util.stream.Collectors;
class UserVo {
private String name;
// 其他属性...
public UserVo(User user) {
this.name = user.getName();
// 设置其他属性...
}
// getters and setters...
}
public List<UserVo> mergeLists(List<User> list1, List<User> list2) {
Set<String> commonNames = list1.stream()
.map(User::getName)
.collect(Collectors.toSet());
return list2.stream()
.filter(user -> commonNames.contains(user.getName()))
.map(this::createVo)
.collect(Collectors.toList());
}
private UserVo createVo(User user) {
return new UserVo(user);
}
// 使用示例
List<User> list1 = Arrays.asList(new User("Alice"), new User("Bob"));
List<User> list2 = Arrays.asList(new User("Bob"), new User("Charlie"));
List<UserVo> mergedList = mergeLists(list1, list2);
System.out.println(mergedList);
```
这个函数首先找到list1中所有的用户名,然后筛选出list2中名字相同的用户,对于每个匹配的用户,它会创建一个新的UserVo对象。
阅读全文