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();