java - 通过 ID 分配两个数组

标签 java android loops if-statement kotlin

我被简单的事情困住了,比如循环 forif 语句。

我有两个不同的对象:

对象A:

0: id = 1, name = null

1: id = 3, name = null

对象B:

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());
                }
            }

在此之后,我有一个 objectA 列表,其中姓氏来自 objectB 数组。根据 Android Studio Debugger 和一些......逻辑......这在逻辑上是合乎逻辑的,但我错过了什么并且做错了什么?

我的错误输出:

对象A:

0: id = 1, name = NameForID3

1: id = 3, name = NameForID3

预期输出:

对象A:

0: id = 1, name = NameForID1

1: id = 3, name = NameForID3

UPD

ObjectA类:

class objectA:Serializable {
    var objectAID: Int? = null
    var objectAName: String? = null
}

对象B类:

class objectB {

    var objectBName: String? = null
    var objectBID: Int? = null

}

更新。 2020 年 4 月 30 日: 仍然得到相同的错误输出,基于下面的答案尝试了 equals=====、Java 中的 POJO 的不同变体 Kotlin 。

UPD: 只是浪费了你的时间 - 当我试图用你的提示发现错误时,我已经对我的代码进行了恶意攻击并开始为 objectA 分配相同的 ID 和名称是平等的。

最佳答案

我假设 ids整数:

试试这个:

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........
}

关于java - 通过 ID 分配两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61513036/

相关文章:

Java Spring Boot - JPA : StackOverflowError with a @ManyToMany relation

java - 使用变量进行 Kotlin 元编程

java - 如何使用 AChartEngine 设置不同于饼图中标题的图例..?

带有 Google Cloud SQL 和 Google Datastore 的 Android 数据库

android - javax.net.ssl.SSLException : hostname in certificate didn't match android 异常

java - 有什么办法可以从循环中返回一个值并从我离开的地方继续吗?

java - 在 Eclipse 中使用 jasypt

java - 解析 JSON 数据时出错 - 异步任务

c# - 优化两个非常大的列表的 C# 循环比较

android - 如何在无限循环中不断更新 Activity 中的 TextView?