Я застрял в таких простых вещах, как оператор al oop for
и if
.
У меня есть два разных объекта:
objectA:
0: id = 1, name = null
1: id = 3, name = null
objectB:
id = 1, name = NameForID1
id = 3, name = NameForID3
Моя цель - назначить имена из objectB для objectA по значению идентификатора.
Я сделал двойной l oop +, если:
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 и некоторым ... logi c ... это логично, но что я пропускаю и делаю неправильно?
Мой плохой вывод:
объект 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
}
Класс ObjectB:
class objectB {
var objectBName: String? = null
var objectBID: Int? = null
}
UPD. 30.04.2020: Все еще получая тот же плохой результат, основываясь на ответах ниже, пробовали различные варианты equals
, ==
, ===
, POJO в Java вместо Kotlin.
UPD: Просто потратил впустую ваше время - когда я пытался найти ошибку с вашими подсказками, я испортил свой код и начал назначать равные идентификаторы для objectA, поэтому имена были равны.