提问者:小点点

字段本身是一个类的Java流连接


对于同一类的字段,我可以使用

stream().map(String::valueOf).collect(Collectors.joining(","));

如何在一行中使用流来连接给定的拒绝项目列表中的项目id

class RejectItem{
Item item;
String reason;
}
class Item{
Long id;
Date createdOn;
}
..................
List<RejectItem> ri;
String commaSepIdString = ri.stream ??


共3个答案

匿名用户

您可以使用如下的lambda表达式:

List<RejectItem> rejectedItems = ...

String result = rejectedItems.stream()
        .map(ri -> ri.item.id.toString())
        .collect(Collectors.joining(","));

匿名用户

您还可以使用map函数来构建一个“路径”槽函数调用,例如

String commaSepIdString = ri.stream().map(ri -> ri.item).map(i -> i.id).map(String::valueOf).collect(Collectors.joining(","));

匿名用户

你可以用这样的东西。 不要直接使用。toString(),以防使用Long和not Long时为空。

list.stream().map(item -> String.valueOf(item.item.id)).collect(Collectors.joining(","))

我建议为你的类添加getters和setters。 使用lombok注释,最小化代码。