java 中怎样将2个不同对象的list 和成一个list
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中怎样将2个不同对象的list 和成一个list相关的知识,希望对你有一定的参考价值。
参考技术A 合并list需要两个list的类型相同,例子如下:List
list1
=
new
ArrayList
();
List
list2
=
new
ArrayList
();
list1.add("测");
list1.add("试");
list2.add("合");
list2.add("并");
list1.addAll(list2);
将 2 个不同对象的列表合并为一个组合对象
【中文标题】将 2 个不同对象的列表合并为一个组合对象【英文标题】:Merge a list of 2 different objects into one combined object 【发布时间】:2021-10-29 06:28:17 【问题描述】:我需要将两个列表List<Phone>
和List<PhoneTwo>
合并为一个组合对象Combined
,在Combined
中只有一个字段,即phone
[
"phones": [
"id": 1,
"phone": "44444444"
,
"id": 2,
"phone": "5555555"
],
"phonesTwo": [
"id": 1,
"phone": "77777777"
,
"id": 2,
"phone": "66666666"
],
"combined": null
]
预期结果是:
[
"phones": [
//data removed for brevity
],
"phonesTwo": [
//data removed for brevity
],
"combined": [
"phone": "44444444"
,
"phone": "5555555"
,
"phone": "77777777"
,
"phone": "77777777"
]
]
尝试使用flatmap,但卡在了这里,我应该如何继续?
employee.getPhones()
.stream()
.flatMap(employee.getPhonesTwo().stream()
.map(two ->
Combined combined = new Combined();
//not sure what to do here
)).collect(Collectors.toList());
【问题讨论】:
【参考方案1】:class Combined
String phone;
public Combined(String phone)
this.phone = phone;
只需迭代两个列表并将新对象与手机添加到组合数组中
ArrayList<Combined> combined = new ArrayList<Combined>()
for(obj in employee.getPhones())
combined.add(new Combined(obj.phone))
for(obj in employee.getPhonesTwo())
combined.add(new Combined(obj.phone))
System.out.println(combined)
【讨论】:
以上是关于java 中怎样将2个不同对象的list 和成一个list的主要内容,如果未能解决你的问题,请参考以下文章
java中一个List集合,放的都是从不同的表中查出来的数据,请问我怎样可以根据其中的一个字段进行list排序
java中一个List集合,放的都是从不同的表中查出来的数据,请问我怎样可以根据其中的一个字段进行list排序