2015-10-07 79 views
-2

此代碼在java 7中正常工作。 Java 8中的迭代成功,但如果其他決策制定成功,我將被疊加。 我有一個列表,我有整數以及雙值。我如何解析這個並設置在模型類中?如何使用java 8 stream API過濾多個條件的列表?

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())); 
    } 
} 
+2

你的for循環很奇怪:你一次又一次地在同一個對象'avgRatingModel'上設置值('setAvgRating'或'setNoOfVotes')。這是正常的嗎? – Tunaki

+0

您的意思是您想要將'propertylist'中的屬性'prop'自動綁定到'AverageRatingModel'類的'prop'成員? –

+0

你的代碼有什麼問題? – dasblinkenlight

回答

1

您可以使用兩個流,但它會很糟糕。最好有一個專爲Properties設計的數據結構。

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

如果您的房地產擁有有用的數據結構,那麼您的代碼將會更清潔。

相關問題