嗨,我有两个对象列表。 List1和list2
App1中的员工列表
list1
[id=1, name=Thomas, country=null],
[id=2, name=Smith, country=null],
[id=3, name=james, country=null],
[id=4, name=arun, country=null]]
GuestEmployee
list2
[id=3, name=null, country=JAPAN, address=abc],
[id=2, name=null, country=USA, address=def],
[id=4, name=null, country=ENGLAND, address=hij]]
list1具有名称详细信息,list2具有国家/地区详细信息。 如何将ID与清单1相同的对象从清单2的国家/地区复制到清单1。
在sql中,我们可以很容易地通过ID列进行连接。但是这里要点击单独的API来读取list2。
我可以从list2创建地图,并以EmpId作为键,并继续从地图获取对象并将详细信息设置为list1。
想知道是否有更好的方法可以做到这一点。
基本上,我必须循环两次才能将数据放入list1。
循环1创建Map,循环2复制文件。
答案 0 :(得分:0)
HashMap<Integer, YourClass> map;
。使用ID字段值作为地图中的键。List<YourClass> list;
。get
的map方法快速获取带有该Id
的实体的国家/地区for (YourClass item : list) {
item.setCountry(map.get(item.getId()));
}
答案 1 :(得分:0)
您应该迭代两个列表并检查ID是否相等。
如果要将list2国家/地区复制到list1对象,请执行以下操作
for (Employee e1: list1){
for (Employee e2: list2){
if (e1.getId()==e2.getId()) { //if its a String do .equals()
e1.setCountry(e2.getCountry();
}
}
}
答案 2 :(得分:0)
for(Employee employee : list1){
for(Employee employee2 : list2) {
if(employee.getId() == employee2.getId()){
employee.setCountry(employee2.getCountry());
break;
}
}
}
短: 您从列表1中提取每个员工,从列表2中搜索具有相同ID的员工,并设置匹配的县。