Java8将对象列表转换为对象的一个属性列表
我想使用Java 8技巧在一行中执行以下操作。
给定此对象定义:
@Getter@Setter
@NoArgsConstructor
@AllArgsConstructor
public class MyObj {
private String id;
private Double value;
}
和a List<MyObj> objects
,我想得到a List<String> objectIds
,它是第一个列表中所有id
s对象的列表-
顺序相同。
我可以使用Java中的循环来做到这一点,但我相信Java8中应该有一个单行lambda可以做到这一点。我无法在线找到解决方案。也许我没有使用正确的搜索词。
有人可以为这种转换建议一个lambda或另一种线吗?
回答:
这应该可以解决问题:
objects.stream().map(MyObj::getId).collect(Collectors.toList());
也就是说, ::
运算符使您可以引用类路径中的任何方法,并将其用作所需操作的lambda。
如评论中所述,流保留顺序。
以上是 Java8将对象列表转换为对象的一个属性列表 的全部内容, 来源链接: utcz.com/qa/404362.html