将对象的属性列表联接到字符串中
2022-09-01 06:44:39
我现在正在学习lambda,我想知道如何用lambda的一行来编写这段代码。
我有一个类,其中包括一个和字段Person
ID
name
目前,我有一个存储这些对象的。我想完成的是得到一个由人的id组成的字符串,就像这样。List<Person>
Person
“id1,id2,id3”。
如何使用 lambda 完成此操作?
我现在正在学习lambda,我想知道如何用lambda的一行来编写这段代码。
我有一个类,其中包括一个和字段Person
ID
name
目前,我有一个存储这些对象的。我想完成的是得到一个由人的id组成的字符串,就像这样。List<Person>
Person
“id1,id2,id3”。
如何使用 lambda 完成此操作?
要检索由分隔符分隔的所有 ID 组成的,您首先必须将该 ID 映射到
一个新流中,然后才能应用 Collectors.join on
。String
","
Person
String result = personList.stream().map(Person::getId)
.collect(Collectors.joining(","));
如果您的ID字段不是一个,而是一个或其他一些基元数字类型,那么您应该使用以下解决方案:String
int
String result = personList.stream().map(p -> String.valueOf(p.getId()))
.collect(Collectors.joining(","));
流到地图,并收集到列表!
List<String> myListofPersons = personList.stream()
.map(Person::getId)
.collect(Collectors.toList());
如果您在 String 对象中需要它,则加入列表
String res = String.join(" , ", myListStringId);
System.out.println(res);