在Java中将对象的多个实例合并为一个实例
我有一节课在Java中将对象的多个实例合并为一个实例,java,java-stream,Java,Java Stream,我有一节课 class Dealer { String location; List<Car> cars; } 有一个包含两个实例的列表: List<Dealer> dealers = [dealer1, dealer2]; 当然。但它不会特别漂亮,因为它有点奇怪。将经销商分解为汽车,将您的“流”平面映射为一个流(flatmap就是这样做的;让您将一个对象映射为一个流,然后将所有流“解包”为一个流),然后收集回列表,并使用它创建新的经销商 List<Ca
class Dealer {
String location;
List<Car> cars;
}
有一个包含两个实例的列表:
List<Dealer> dealers = [dealer1, dealer2];
当然。但它不会特别漂亮,因为它有点奇怪。将经销商分解为汽车,将您的“流”平面映射为一个流(flatmap就是这样做的;让您将一个对象映射为一个流,然后将所有流“解包”为一个流),然后收集回列表,并使用它创建新的经销商
List<Car> allCars = dealers.stream()
.map(Dealer::getCars)
.flatMap(List::stream)
.collect(Collectors.toList());
return new Dealer("Whatever location you want", allCars);
列出所有汽车=经销商。流()
.map(经销商::getCars)
.flatMap(列表::流)
.collect(Collectors.toList());
返回新经销商(“您想要的任何位置”,所有车辆);
当然可以。但它不会特别漂亮,因为它有点奇怪。将经销商分解为汽车,将您的“流”平面映射为一个流(flatmap就是这样做的;让您将一个对象映射为一个流,然后将所有流“解包”为一个流),然后收集回列表,并使用它创建新的经销商
List<Car> allCars = dealers.stream()
.map(Dealer::getCars)
.flatMap(List::stream)
.collect(Collectors.toList());
return new Dealer("Whatever location you want", allCars);
列出所有汽车=经销商。流()
.map(经销商::getCars)
.flatMap(列表::流)
.collect(Collectors.toList());
返回新经销商(“您想要的任何位置”,所有车辆);
为什么你想要一个“经销商”而不是一个简单的组合列表?为什么你想要一个“经销商”而不是一个简单的组合列表?也许,一个不同的不会伤害或。收集(收集然后(toList(),cars->新经销商(“location”,cars))
可能,一个不同的不会伤害或。收集(收集然后(toList(),汽车->新经销商(“位置”,汽车)))
List<Car> allCars = dealers.stream()
.map(Dealer::getCars)
.flatMap(List::stream)
.collect(Collectors.toList());
return new Dealer("Whatever location you want", allCars);