java 8从ListOdsMaterialDocumentItem splitReleaseTotalMap中获取字段Material为026000010003的值 并判断是否有值没有值的话取0
可以使用Java 8的流式操作和Lambda表达式来实现该需求:
OptionalDouble releaseTotal = splitReleaseTotalMap.stream()
.filter(item -> "026000010003".equals(item.getMaterial()))
.mapToDouble(OdsMaterialDocumentItem::getValue)
.findFirst();
double value = releaseTotal.orElse(0.0);
解释一下上面的代码:
- 使用
stream()方法将splitReleaseTotalMap转换为流。 - 使用
filter()方法过滤出Material字段为026000010003的元素。 - 使用
mapToDouble()方法将Value字段转换为double类型的流。 - 使用
findFirst()方法获取第一个结果,返回一个OptionalDouble对象。 - 使用
orElse()方法获取OptionalDouble中的值,如果没有值则返回0.0。
最终得到的value变量即为Material字段为026000010003的元素的Value值,如果没有符合条件的元素则为0.0
原文地址: http://www.cveoy.top/t/topic/huDO 著作权归作者所有。请勿转载和采集!