我有一份汽车制造商,型号和装饰清单。每个对象都有不同的属性。防爆。汽车制造商可以进口与国内,运动与奢侈品等。我目前的设置如下所示,
public Manufacturer {
private String manufacturerName; //Getter&Setter as well
private List<Model> modelList; //Getter&Setter as well
//additional attributes
}
public Model {
private String modelName;
private List<Trim> trimList; //Getter&Setter as well
//additional attributes
}
public Trim {
private String trimType; //Getter&Setter as well
//additional attributes
}
public ContainerClass {
public List<Manufacturer> manufacturerList;
}
现在我可以将对象创建为Mazda,3,Grand Touring并将对象关联到列表中。但是,如果有人出现并且只是想要一辆带有天窗的汽车,那么必须深入了解每个可能的制造商以及该制造商的每个型号以确定装饰是否具有天窗属性。是否有任何策略可以让开发人员(包括我自己)更容易使用?
注意:我正处于没有数据库的地步,因为我没有真正的数据来填充数据库,这是一个止差距,直到我以后得到这些数据,所以请不要只说“创建一个数据库”:)。此外,我从JBehave的ExamplesTable对象加载此信息。
答案 0 :(得分:2)
您可以通过某些子流过滤制造商:
container.getManufacturerList().stream()
.filter(manufacturer ->
manufacturer.getModelList().stream().anyMatch(model ->
model.getTrimList().stream().anyMatch(trim ->
trim.getTrimType().equals("sunroof"))))
.collect(Collectors.toList());