Java 具有lambda的复杂对象列表中的多个操作

Java 具有lambda的复杂对象列表中的多个操作,java,lambda,java-8,Java,Lambda,Java 8,让我们想象一下我有这样一门课: public class Borrow { private Float perCent; private Float rate; } 我有一个借用对象的列表: List<Borrow> moneyBorrowed = new ArrayList<Borrow>(); 但是我运气不太好 有什么建议吗?forEach是一个没有返回值的终端操作,因此您不能将任何方法调用链接到它 使用mapToDouble将流转换为双流,您可以对其

让我们想象一下我有这样一门课:

public class Borrow {
   private Float perCent;
   private Float rate;
}
我有一个
借用
对象的列表:

List<Borrow> moneyBorrowed = new ArrayList<Borrow>();
但是我运气不太好


有什么建议吗?

forEach
是一个没有返回值的终端操作,因此您不能将任何方法调用链接到它

使用
mapToDouble
转换为
双流
,您可以对其求和:

double sum = moneyBorrowed.stream().mapToDouble(p -> p.getPerCent() * p.getRate()).sum();
double sum = moneyBorrowed.stream().mapToDouble(p -> p.getPerCent() * p.getRate()).sum();

您需要使用
mapXxx
方法之一,而不是
forEach
。在您的情况下,您可以使用(没有
mapToFloat
方法):

double sum = moneyBorrowed.stream().mapToDouble(p -> p.getPerCent() * p.getRate()).sum();