将对象的属性列表联接到字符串中

2022-09-01 06:44:39

我现在正在学习lambda,我想知道如何用lambda的一行来编写这段代码。

我有一个类,其中包括一个和字段PersonIDname

目前,我有一个存储这些对象的。我想完成的是得到一个由人的id组成的字符串,就像这样。List<Person>Person

“id1,id2,id3”。

如何使用 lambda 完成此操作?


答案 1

要检索由分隔符分隔的所有 ID 组成的,您首先必须将该 ID 映射到一个新流中,然后才能应用 Collectors.join onString","Person

String result = personList.stream().map(Person::getId)
                          .collect(Collectors.joining(","));

如果您的ID字段不是一个,而是一个或其他一些基元数字类型,那么您应该使用以下解决方案:Stringint

String result = personList.stream().map(p -> String.valueOf(p.getId()))
                          .collect(Collectors.joining(","));

答案 2

流到地图,并收集到列表!

List<String> myListofPersons = personList.stream()
          .map(Person::getId)
          .collect(Collectors.toList());

如果您在 String 对象中需要它,则加入列表

String res = String.join(" , ", myListStringId);
System.out.println(res);

推荐