簡體   English   中英

使用lambda的復雜對象列表中的多個操作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM