如何使用java 8流API过滤多个条件的列表?

时间:2015-10-07 09:41:08

标签: java java-8 java-stream

此代码在java 7中运行良好。 java 8中的迭代是成功的,但我是堆叠而不管其他决策。 我有一个列表,其中我有整数和双值。我如何解析这个并设置为模型类?

AverageRatingModel avgRatingModel = new AverageRatingModel();
for(Property p:propertylist){
    if(p.getName().equals("averagevote")){
        avgRatingModel.setAvgRating(Double.parseDouble(p.getValue()));
    }
    if(p.getName().equals("nbvotes")){
        avgRatingModel.setNoOfVotes(Integer.parseInt(p.getValue()));
    }
}

1 个答案:

答案 0 :(得分:1)

你可以使用两个流,但它会很糟糕。拥有一个专为Properties设计的数据结构必须更好。

properties.ifPresentDouble("averagevote", avgRatingModel::setAvgRating);
properties.ifPresentInt("nbvotes", avgRatingModel::setNoOfVotes);

如果您的资产具有有用的数据结构,那么您的代码将更加清晰。