我陷入了诸如循环for
和if
声明之类的简单事情中。
我有两个不同的对象:
对象:
0:id = 1,名称= null
1:id = 3,名称= null
objectB:
id = 1,名称= NameForID1
id = 3,名称= NameForID3
我的观点是通过ID值将名称从objectB分配给objectA。
我已经完成了双循环+如果:
for (int i = 0; i <= objectA.size() - 1; i++){
for(int j = 0; j<=objectB.size() - 1; j++){
if(Objects.requireNonNull(objectA.get(i).getobjectAID()).equals(objectB.get(j).getObjectBID()))
objectA.get(i).setobjectAName(objectB.get(j).getobjectBName());
}
}
在此之后,我有一个objectA
来自objectB
数组的姓氏列表。根据Android Studio Debugger和一些...逻辑...这在逻辑上是合理的,但是我缺少了什么并且做错了?
我的输出不好:
对象:
0:ID = 1,名称= NameForID3
1:id = 3,名称= NameForID3
预期产量:
对象:
0:ID = 1,名称= NameForID1
1:id = 3,名称= NameForID3
UPD
对象类;
class objectA:Serializable {
var objectAID: Int? = null
var objectAName: String? = null
}
ObjectB类:
class objectB {
var objectBName: String? = null
var objectBID: Int? = null
}
UPD。2020年4月30日:仍然得到同样的坏输出的基础上,下面的答案已经尝试不同的变化equals
,==
,===
,POJO在Java中,而不是科特林。
UPD:只是浪费您的时间-当我尝试通过提示发现错误时,我对我的代码进行了恶意处理,并开始为objectA分配相同的ID,因此名称相同。
我假设ids
是integers
:
尝试这个:
for (int i = 0; i < objectA.size(); i++){
for(int j = 0; j < objectB.size(); j++){
if(objectA.get(i).getobjectAID() == objectB.get(j).getObjectBID()){
//set
objectA.get(i).setobjectAName(objectB.get(j).getobjectBName());
}
}
}
您的POJO必须使用以下Java语言:
对象A
public class objectA {
private int objectAID;
private String objectAName;
//generate getters and setters........
}
对象B
public class objectB {
private int objectBID;
private String objectBName;
//generate getters and setters........
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句