繁体   English   中英

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

[英]Java8 Transform list of object to list of one attribute of object

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

鉴于此对象定义:

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

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

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

有人可以为这个变换建议一个lambda或另一个单行程吗?

这应该做的伎俩:

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

也就是说, 方法reference :: operator允许您引用类路径中的任何方法,并将其用作您需要的操作的lambda。

如评论中所述,流保留了订单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM