使用streams和java8创建对象列表的字段值的连接字符串

时间:2014-07-13 20:22:36

标签: java lambda java-8

我有一个像

这样的课程
public class Person {

  public Person(String firstName) {...}

  public String getFirstname() {...}

  // ... some other fields

}

以及这些类的对象列表:

List<Person > objList = new ArrayList<>();
objList.add(new Person("Peter"));
objList.add(new Person("James"));
objList.add(new Person("Bart"));

现在我需要一个以逗号分隔的列表,列出此对象列表的第一个名称,如"Peter,James,Bart"

如何使用lambdas和Java 8流做到这一点? TIA!

1 个答案:

答案 0 :(得分:9)

这基本上是java.util.stream.Collectors的API文档中的第三个示例:

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