当前位置: 首页 > 知识库问答 >
问题:

如何使用流从对象向列表添加值

封梓
2023-03-14

如果是的话,我们能做吗?

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中添加一个属性到列表中,有一种方法可以在上面的语句中添加吗?

共有1个答案

暴阳州
2023-03-14

.map操作中,应该将对象映射到所需ID的列表/流,然后应用FlatMap:

List<Long> ids = myObject
        .stream()
        .map(mo -> Arrays.asList(mo.getId(), mo.getTestId()))
        .flatMap(List::stream)
        .collect(Collectors.toList());

或者(与霍尔格的评论相同)

List<Long> ids = myObject
        .stream()
        .flatMap(mo -> Stream.of(mo.getId(), mo.getTestId()))
        .collect(Collectors.toList());

如果IDs后跟testids,则可以将流连接起来:

List<Long> ids = Stream.concat(
    myObject.stream().map(MyObject::getId),
    myObject.stream().map(MyObject::getTestId)
)
.collect(Collectors.toList());
List<Long> ids = Stream.of(
    myObject.stream().map(MyObject::getId),
    myObject.stream().map(MyObject::getTestId),
    myObject.stream().map(MyObject::getAnotherId)
)
.flatMap(Function.identity())
.collect(Collectors.toList());
 类似资料:
  • 如何以另一种方式从流中添加两个不同列表中的对象? 这里有一个例子

  • 从实体映射时,我想向DTO/model对象添加一个派生列表。例如,我有一个名为Company的实体类,它有一个员工列表。我希望公司模型对象包含员工列表和经理员工列表。(这不是我真正的类名,但这是我正在尝试做的事情)。所以,我希望公司数据有一个员工列表和一个经理列表,其中经理是通过过滤员工列表而得到的员工子集。 我尝试使用映射表达式和默认方法。然而,我需要使用EmployeeMapper,而我似乎没

  • 我有一门课 以及对象列表 假设我已经填充了每个对象的字段。现在我想用相同的值填充每个对象的“学校”字段,比如“XYZ学校”。如何使用Java 8 stream()实现这一点?我试着用下面的方法,但它给出了错误。 我应该在那里使用还是其他什么东西?我如何在中收集结果?

  • 为所有的代码道歉。我尽量少发帖。

  • 我有一个观察数据表和是和否的模型。为简单起见,我只假设对组。我浪费了一些分类统计数据,我想控制选择哪一个。我知道如何使用eval做到这一点并将其保存在另一个data.table中,但我想添加到现有的data.table中,因为我每个组只有一行。任何人都可以帮我吗? 首先,我为每个组创建列联表。 然后定义统计数据 如果我使用下面几行,它会给我一个新的数据表: 如何在此示例中使用:=将结果添加到我的旧

  • 我正在使用Java8开发Spring Boot Version2,当我试图在“createTopic”方法中将一个新的列表对象添加到预定义的列表对象(即topicList)中时,我得到了一个错误。 ** TopicService.java ** ** 2020-04-15 19:52:27.172错误15312---[nio-8080-exec-2]O.A.C.C.C.[.[.[/].[dispa