java 8,列表<;员工>;到部门地图和地址列表
我有一门课 类用户{ 弦乐部; 字符串地址; } 我有一个用户列表,我可以使用Java8 stream/map/collect获得下面的输出吗java 8,列表<;员工>;到部门地图和地址列表,java,collections,java-8,java-stream,collectors,Java,Collections,Java 8,Java Stream,Collectors,我有一门课 类用户{ 弦乐部; 字符串地址; } 我有一个用户列表,我可以使用Java8 stream/map/collect获得下面的输出吗 List<User> userList=getUserList(); Map<String,List<String>> userAddressMap=new HashMap<String,List<String>>(); for(User user : userList){ List
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);
}
List userList=getUserList();
Map userAddressMap=新HashMap();
for(用户:userList){
List addressList=userAddressMap.get(user.getDepartment());
if(addressList==null){
userAddressMap.put(user.getDepartment(),addressList);
}
address.add(user.getAddress);
}
使用带有映射的收集器下游的groupingBy
收集器
import static java.util.stream.Collectors.*;
Map<String, List<String>> userAddressMap = userList.stream()
.collect(groupingBy(
User::getDepartment,
mapping(User::getAddress, toList())
));
导入静态java.util.stream.collector.*;
Map userAddressMap=userList.stream()
.收集(分组)(
用户:getDepartment,
映射(用户::getAddress,toList())
));