![](/img/trans.png)
[英]Java lambda help -- act on multiple member variables of list of objects
[英]multiple operations in list of complex objects with lambda
讓我們想象我有這個課程:
public class Borrow {
private Float perCent;
private Float rate;
}
我有一個Borrow
對象列表:
List<Borrow> moneyBorrowed = new ArrayList<Borrow>();
對於每個Borrow
元素,我需要將perCent
乘以rate
並將所有結果相加。
我想在Java 8中使用lambda表達式。我想使用這樣的東西:
moneyBorrowed.stream().forEach(p -> {
p.getPerCent() * p.getRate()
}).sum();
但我運氣不好......
有什么建議嗎?
forEach
是一個沒有返回值的終端操作,因此您無法將任何方法調用鏈接到它。
使用mapToDouble
將您的Stream
轉換為DoubleStream
,您可以將其mapToDouble
:
double sum = moneyBorrowed.stream().mapToDouble(p -> p.getPerCent() * p.getRate()).sum();
而不是forEach
,您需要使用mapXxx
方法之一。 在你的情況下,你可以使用mapToDouble
(沒有mapToFloat
方法):
double sum = moneyBorrowed.stream().mapToDouble(p -> p.getPerCent() * p.getRate()).sum();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.