我有一份汽车清单
List<Car> cars = ...;
一辆汽车拥有一个所有者
,而这个所有者
又有一个联系电话号码
汽车
public class Car {
private Owner owner;
public Owner getOwner(){
return owner;
}
}
所有者
public class Owner {
private ContactNumber contactNumber;
public ContactNumber getContactNumber() {
return contactNumber;
}
}
我知道可以使用以下方法按所有者分组汽车:
Map<Owner, List<Car>> groupByOwner = cars.stream().collect(groupingBy(Car::getOwner));
如果我知道一个 ContactNumber
只能关联一个 Owner
,那么有没有办法使用流按 Owner
和 ContactNumber
进行分组呢?
如果一个 ContactNumber
可以由多个 Owner
共享,我该如何做到这一点呢?
即创建下面的映射:
Map<Owner, List<Car>> groupByOwner = cars.stream().collect(groupingBy(Car::getOwner))
Map<ContactNumber, Map<Owner, List<Car>>> groupByContactNumberAndOwner = groupByOwner...
ContactNumber
是每个所有者唯一的,那么为什么在groupByContactNumberAndOwner
中要有ContactNumber
所有者的Map
? - tsolakp