java - 使用条件 Java 在列表中填充列表
问题描述
我正在尝试填充 aList<Object>
作为属性 another List
。
这是场景。
第一个对象
public class Student {
private String initials;
private String id;
private List<StudentDetail> listStudentDetail;
//Setters and Getters
}
第二个对象
public class StudentDetail {
private String id;
private String name;
//Setters and getters
}
我的最终java对象如下。
public class Response {
private String code;
private String message;
private List<Student> listStudent;
//Setters and getters
}
我从另一个进程中填充了 aList<Student>
和 a List<StudentDetail>
,我想要实现的是将这两个列表合并到我的Response
类中,但具有这些特定条件
为了填补List<StudentDetail>
- Student.initials 必须是“a”
- Student.id = StudentDetail.id
这些是我想要实现的。
{
"code": "0",
"message": "Succes",
"listStudent": [
{
"initials": "a",
"id": "104",
"listStudentDetail": [
{
"id": "104",
"name": "Kevin"
}
]
},
{
"initials": "b",
"id": "100",
"listStudentDetail": []
},
{
"initials": "a",
"id": "105",
"listStudentDetail": [
{
"id": "105",
"name": "Robert"
}
]
}
]
}
解决方案
这是代码。
我假设populatedStudentList
并populatedStudentDetail
作为已填充在您提到的代码的其他部分中的给定对象。
for (Student s in populatedStudentList){
if (s.getInitials().compareTo('a') != 0){
continue;
}
String findId = s.getId();
List<StudentDetail> tempListStudentDetail = new ArrayList<>();
for (StudentDetail d in populatedStudentDetail){
if (d.getId().compareTo(findId) == 0){
tempListStudentDetail.append(d);
}
}
s.setListStudentDetail(tempListStudentDetail);
}
这可以使用 hashTables 以更节省内存的方式实现,但我尝试以最基本的方式重现所需的结果。
推荐阅读
- python - Discord.py - 向每个成员发送消息
- mysql - 将默认数据插入 MySql
- reactjs - react-mapbox-gl 功能不适用于 NextJS
- mongodb - mongodb 分片,如果我将分片分成 10 倍小
- node.js - Kubernetes - “ERR_TOO_MANY_REDIRECTS”错误
- python - 唯一约束失败 - 如果不是唯一键,则为好消息
- javascript - 超过最大更新深度。当组件在 useEffect 中调用 setState 时,可能会发生这种情况,
- powershell - PS 列出包含文件的特定目录
- python - mypy 没有拾取已安装的存根
- php - Laravel 应用程序无法完成迁移 - 新安装 - 如何修复数据库连接