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

我想使用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。

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

以上是 Java8将对象列表转换为对象的一个​​属性列表 的全部内容, 来源链接: utcz.com/qa/404362.html

回到顶部