通过ID分配两个数组

danyapd:

我陷入了诸如循环forif声明之类的简单事情中

我有两个不同的对象:

对象:

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,因此名称相同。

哈桑·布塔姆(Hasan Bou Taam):

我假设idsintegers

尝试这个:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章