当前位置: 首页 > 面试题库 >

Java8将对象列表转换为对象的一个​​属性列表

柯鸿云
2023-03-14
问题内容

我想使用Java 8技巧在一行中执行以下操作。

给定此对象定义:

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class MyObj {
    private String id;
    private Double value;
}

和a List<MyObj> objects,我想得到a List<String> objectIds,它是第一个列表中所有ids对象的列表-
顺序相同。

我可以使用Java中的循环来做到这一点,但我相信Java8中应该有一个单行lambda可以做到这一点。我无法在线找到解决方案。也许我没有使用正确的搜索词。

有人可以为这种转换建议一个lambda或另一种线吗?


问题答案:

这应该可以解决问题:

objects.stream().map(MyObj::getId).collect(Collectors.toList());

也就是说, 方法引用 ::运算符使您可以引用类路径中的任何方法,并将其用作所需操作的lambda。

如评论中所述,流保留顺序。



 类似资料:
  • 我可以在Java中使用循环来实现这一点,但我认为在Java8中应该有一个一行程序lambda来实现这一点。我无法在网上找到解决方案。也许我没有使用正确的搜索词。 有人能为这个转换提出一个lambda或另一个一行程序吗?

  • 问题内容: 我有SourceObjects列表,我需要将其转换为ResultObjects列表。 我可以使用ResultObject的方法将一个对象获取到另一个对象: 我当然可以这样: 但对于能够展示如何使用 rxJava 进行相同操作的人,我将非常感激。 问题答案: 如果发出,则可以使用以下运算符: (将您的列表转换为可观察项) (将您的商品转换为其他商品) 运算符(将完成的Observable

  • 问题内容: Json字符串: C#类: C#将json转换为电影的c#列表: 我的变量最终是一个计数为0的空列表。我是否缺少某些内容? 问题答案: 您的C#类映射与json结构不匹配。 解决方案:

  • 问题内容: 我的DAO中有一个hibernate的呼叫,看起来像这样 我收到一条错误消息,说我无法将结果列表转换为模型类型“关联”。我不明白为什么会这样。我只返回关联表中的字段。 问题答案: 您需要使用来指定要转换为结果的实体类,因为您正在执行对实体一无所知的SQL查询: 也可以看看: 18.1.2。实体查询

  • 我需要使用特定对象的属性(