首页 > 解决方案 > 如何使用流将值从对象添加到列表

问题描述

我有一个具有多个属性的对象,我想将多个属性添加到同一个列表

我能够添加一个属性找不到添加其他属性的方法。

如果可以,我们可以这样做吗?

List<MyObject> myObject = new ArrayList<>();

I have some values in the object  here 

List<Long> Ids  = myObject .stream().map(MyObject::getJobId).collect(Collectors.toList());

在这里,我想从同一个 MyObject 对象 getTestId 添加一个属性到列表中是否有一种方法可以在上述相同的语句中添加?

标签: javacollectionsjava-stream

解决方案


使用流创建两个列表,然后最后将它们组合起来, map 只能返回一个值getJobIdor getTestId,因此您不能在同一次迭代中执行此操作。

    List<Long> JobIds = myObject.stream().map(myObj::getJobId).collect(Collectors.toList());
    List<Long> TestIds = myObject.stream().map(myObj::getTestId).collect(Collectors.toList());
    List<Long> Ids = Stream.concat(JobIds.stream(), TestIds.stream()).collect(Collectors.toList());


推荐阅读