我在简单的循环 for
和条件语句 if
上遇到了瓶颈。
我有两个不同的对象:
objectA:
0:id = 1,name = null
1:id = 3,name = null
objectB:
id = 1,name = NameForID1
id = 3,name = NameForID3
我的目标是通过ID值将objectB的名称赋给objectA。
我已经用了双重循环和if语句:
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());
}
}
接下来,我有一个objectB
数组中的姓氏列表与objectA
的列表。根据Android Studio调试器和一些......逻辑......这在逻辑上是正确的,但我错过了什么并且做错了什么?
我的错误输出:
objectA:
0:id = 1,name = NameForID3
1:id = 3,name = NameForID3
期望的输出:
objectA:
0:id = 1,name = NameForID1
1:id = 3,name = NameForID3
更新
ObjectA
类:
class objectA:Serializable {
var objectAID: Int? = null
var objectAName: String? = null
}
ObjectB类:
class objectB {
var objectBName: String? = null
var objectBID: Int? = null
}
更新. 2020年4月30日:
根据下面的答案,尝试了 equals
, ==
, ===
以及在 Java 中使用 POJO,但仍然得到相同的错误输出。
更新: 我浪费了你的时间 - 当我尝试使用你的提示查找错误时,我让我的代码受到了恶意软件攻击,并开始将相同的 ID 分配给 objectA,以至于它们的名称也相同了。
==
来比较整数。 - Hasan Bou Taam