Java 8 速览 vs 地图
我有以下情况:有一个对象列表 - 产品数据,其中包含几个字段:
public class ProductData
{
....
private String name;
private String xref;
//getters
//setters
}
并且有一个API返回以下对象的列表:
public class RatingTableRow
{
private String planName;
private String planXref;
private int fromAge;
private int toAge;
private int ratingRegion;
//constructor
//getters
//setters
}
但它返回具有空计划名称字段的对象,因为在提取此对象期间不允许这样做。我需要通过外部参照将产品数据与 RatingTableRow 链接,以便将计划名称设置为 RatingTableRow,因为我稍后需要使用此对象,因此我创建了以下代码来执行此操作:
Map<String, ProductData> productByXref = plans.stream()
.collect(toMap(ProductData::getInternalCode, Function.identity()));
return getRatingTableRows(...).stream
.filter(ratingRow -> productByXref.containsKey(ratingRow.getPlanXref()))
.peek(row -> {
ProductData product = productByXref.get(row.getPlanXref());
row.setPlanName(product.getName());
})....;
我知道java文档说这不符合这些需求,但希望获得有关如何以更正确的方式完成此任务的建议。peek