win*_*ell 23 java lambda java-8 java-stream
我现在正在学习lambda,我想知道如何用lambda一行编写这段代码.
我有一个Person包括ID和name字段的类
目前,我有一个List<Person>存储这些Person对象.我想要完成的是获取一个由人的id组成的字符串.
"id1,id2,id3".
我怎样才能用lambda实现这个目标?
Ous*_* D. 29
要检索String由分隔符分隔的所有ID的组成,","首先必须map将PersonID转换为新流,然后可以应用该流Collectors.joining.
String result = personList.stream().map(Person::getId)
.collect(Collectors.joining(","));
Run Code Online (Sandbox Code Playgroud)
如果您的ID字段不是String,而是一个int或其他原始数字类型,那么您应该使用以下解决方案:
String result = personList.stream().map(p -> String.valueOf(p.getId()))
.collect(Collectors.joining(","));
Run Code Online (Sandbox Code Playgroud)
流到地图,收集到列表!
List<String> myListofPersons = personList.stream()
.map(Person::getId)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
如果您在 String 对象中需要它,请加入列表
String res = String.join(" , ", myListStringId);
System.out.println(res);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7452 次 |
| 最近记录: |