У меня есть два набора одинаковых структур. Я хочу объединить их по полю id. Комбинация должна быть выполнена в определенном поле (для l1 Num2 и для l2 Num1) Все остальные поля не должны быть изменены.Как объединить два списка в Java
List<MyClass> l1=[{id = 1 , num1 = 3 , num2 = 0 , name = "yoyo"},
{id = 2 , num1 = 9 , num2 = 0 , name = "lolo"},
{id = 3 , num1 = 4 , num2 = 0 , name = "bobo"},
{id = 8 , num1 = 2 , num2 = 0 , name = "toto"}];
List<MyClass> l2=[{id = 1 , num1 = 0 , num2 = 3 , name = "yoyo"},
{id = 2 , num1 = 0 , num2 = 7 , name = "lolo"},
{id = 3 , num1 = 0 , num2 = 8 , name = "bobo"},
{id = 6 , num1 = 0 , num2 = 7 , name = "zozo"}];
// i want to combine the lists to get l3 like this one
list<MyClass> l3=[{id = 1 , num1 = 3 , num2 = 3 , name = "yoyo"},
{id = 2 , num1 = 9 , num2 = 7 , name = "lolo"},
{id = 3 , num1 = 4 , num2 = 8 , name = "bobo"},
{id = 8 , num1 = 2 , num2 = 0 , name = "toto"},
{id = 6 , num1 = 0 , num2 = 7 , name = "zozo"}];
Это было бы проще, если бы вы использовали карту, где «поле id» было ключом. Таким образом, слияние будет просто «map1.putAll (map2)», вы также можете сделать «map1.get (id)» и «map1.remove (id)» –
Что вы пробовали? – talex
Вы имели в виду что-то вроде карты, она будет перезаписана, если у меня будет такой же идентификатор? –