java将一个List<User>中的值合并到另一个List<User>,一个List存储userId和名称,一个存储userId和age,将两个list合并
时间: 2024-12-19 17:20:53 浏览: 5
List排序的通用方法——支持中文
在Java中,如果你想将`List<User>`按照`userId`合并到新的`List<User>`,假设每个用户有两个字段:`userId`、`name`和`age`,并且你已经有了分别存储这两个信息的列表,你可以创建一个新的列表,然后遍历原有的两个列表,根据`userId`查找并添加对应的用户对象。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
class User {
int userId;
String name;
int age;
// ... getters and setters
}
public class Main {
public static void main(String[] args) {
List<User> userListById = new ArrayList<>(); // 存储 userId 和 name
List<User> userAgeListById = new ArrayList<>(); // 存储 userId 和 age
// 假设已填充数据
// userListById 和 userAgeListById 分别存储了 userId, name 和 userId, age 对应的数据
// 创建一个新的 List<User> 来存放合并后的结果
List<User> mergedUsers = new ArrayList<>();
for (User user : userListById) {
User mergedUser = findAndMerge(user, userAgeListById);
if (mergedUser != null) { // 如果找到对应年龄,则添加到新列表
mergedUsers.add(mergedUser);
}
}
// ...其他操作(如果需要)
}
private static User findAndMerge(User idNameUser, List<User> userAgeListById) {
for (User user : userAgeListById) {
if (idNameUser.getUserId() == user.getUserId()) {
User merged = new User();
merged.setUserId(user.getUserId());
merged.setName(idNameUser.getName());
merged.setAge(user.getAge());
return merged;
}
}
return null; // 如果未找到匹配的age,返回null
}
}
```
在这个例子中,`findAndMerge()`方法负责查找并合并匹配的用户。如果没有找到匹配的`age`,那么合并后的用户就是仅包含`name`的用户。
阅读全文