Nis*_*hat 3 java java-8 java-stream
我上课了
class Passenger {
String type;
String firstName;
String lastName;
//getter,setter
public String getName() {
return firstName + " " + lastName
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想将乘客列表转换为Map,其中key为"type",值为"name"列表
我试着实现如下,
passengerList.stream().map(w -> w.getName()).collect(groupBy( getType() ));
Run Code Online (Sandbox Code Playgroud)
但是在.map函数之后,Passenger已经映射到firstName,类型不再可用,不知道如何做到这一点.
您必须groupingBy
首先使用它mapping
来获取List
每种类型的名称:
Map<String,List<String>> namesByType =
passengerList.stream()
.collect(Collectors.groupingBy(Passenger::getType,
Collectors.mapping(Passenger::getName,
Collectors.toList())));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
123 次 |
最近记录: |