我有List
个json对象和List
个字符串:
List<Object1> list1
使用以下参数:Name
,Age
。
List<String> list2
参数:Surname
;
所以我想用这种格式创建对象列表:
List1
中的姓氏和List2
List 1 = [{Name: "John"; Age:28;}, {Name: "Mery" Age:22}]
List 2 = [{Surname: "Junior"}, {Surname: "Constant"}]
List 3 = [{Surname: "Junior" Name:"John" Age: 28} , {Surname:"Constant" , Name:"Mery", Age:22}]
那么如何创建第三个List?
答案 0 :(得分:1)
您可以创建一个具有三个属性Object3: {Surname, Name, Age}
的新对象,并创建一个新列表并使用循环读取list1
和list2
的值并填充第三个列表。(假设它们的大小相同)
public class Object3 {
String Sirname;
String Name;
String Age;
public Object3(String sirname, String name, String age) {
Sirname = sirname;
Name = name;
Age = age;
}
//getters and setters
}
然后循环它们:
public List<Object3> mergeLists(List<Object1> list1, List<String> list2){
int size = list1.size();
List<Object3> list3 = new ArrayList<Object3>(size);
for ( int i = 0; i < size; i++){
Object3 obj = new Object3(list2.get(i),
list1.get(i).getName(),
list1.get(i).getAge());
list3.add(obj);
}
}
或者只是简单地将Surname
属性添加到Object1
并循环遍历list2以添加Sirnames。
答案 1 :(得分:0)
我建议你的Ovject1类有3个属性:name,age和surname。我也建议它有吸气剂和制定者。
您可以在两个列表上执行相同的循环,并从第二个列表中获取数据并放在第一个列表中。您可以检查两个列表之前是否具有相同的大小。
int size=list1.size();
List<Object1> list3 = new ArrayList<Object1>();
for(int i=0;i < size;i++){
object1 = list1.get(i);
object1.setSurname(list2.get(i));
list3.add(object1);
}
答案 2 :(得分:0)
使用Jackson从你的Object1 / Object2 ... ObjectN制作一个Map然后合并Maps,它也被称为map / reduce pattern。
映射阶段:将对象转换为java.util.Map的实例
缩小阶段:合并地图对象
您可以选择将结果Map序列化到您的域类。
看看这个例子,它确实做了你想做的事:https://dumpz.org/2707215/