如果没有值,Java流返回0
对象结构如果没有值,Java流返回0,java,java-stream,Java,Java Stream,对象结构 Account Money amount Float value; 实际上我得到的是这样的总数 double sum = accounts.stream() .filter(x -> x.getBalanceType().equals("120") || x.getBalanceType().equals("120+")) .collect(toList()).stream() .mapToDouble(y -
Account
Money amount
Float value;
实际上我得到的是这样的总数
double sum = accounts.stream()
.filter(x -> x.getBalanceType().equals("120") || x.getBalanceType().equals("120+"))
.collect(toList()).stream()
.mapToDouble(y -> y.getAmount().getValue()).sum();
如果没有值,则可以返回0如果没有值,则可以使用条件运算符,如果值不存在,则可以在条件运算符中返回0 您可以根据需要更改地图线
.mapToDouble(y -> y.getAmount().getValue() != null ? y.getAmount().getValue() : 0);
你为什么要收集然后再流媒体?如果列表为空,则流不会做任何事情
double sum = accounts.stream()
.filter(x -> x.getBalanceType().equals("120") || x.getBalanceType().equals("120+"))
.mapToDouble(y -> y.getAmount().getValue())
.sum();
空列表将自动返回0 您可以使用.mapToDoubley->y.getAmount.getValue!=无效的y、 getAmount.getValue:0由“没有值”表示您的意思是值字段为空?为什么getValue不处理转换?返回Float而不是Float真的有什么意义吗?好奇:collecttoList.stream有什么意义?