[英]java 8,List<Employee> to map of department and list of addresses
I have a class like classe User{ String department; 我有一个像classe User {字符串部门; String address;
字符串地址; } i have list of user,can i get below output using java 8 stream/map/collect
我有用户列表,我可以使用java 8 stream / map / collect获得以下输出
List<User> userList=getUserList();
Map<String,List<String>> userAddressMap=new HashMap<String,List<String>>();
for(User user : userList){
List<String> addressList=userAddressMap.get(user.getDepartment());
if(addressList==null){
userAddressMap.put(user.getDepartment(),addressList);
}
addressList.add(user.getAddress);
}
Use groupingBy
collector with mapping
collector downstream. 将
groupingBy
收集器与下游的mapping
收集器一起使用。
import static java.util.stream.Collectors.*;
Map<String, List<String>> userAddressMap = userList.stream()
.collect(groupingBy(
User::getDepartment,
mapping(User::getAddress, toList())
));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.