java 8从ListOdsMaterialDocumentItem splitReleaseTotalMap中获取字段Material为026000010003的quantityInEntryUnit并判断是否有值没有值的话取0
假设List
double quantity = splitReleaseTotalMap.stream()
.filter(item -> "026000010003".equals(item.getMaterial())) // 筛选Material为026000010003的元素
.mapToDouble(item -> item.getQuantityInEntryUnit()) // 获取quantityInEntryUnit字段的值
.findFirst() // 获取第一个匹配的元素
.orElse(0.0); // 如果没有找到,则默认值为0
解释一下代码的每一步:
- 使用stream()方法将List转换为流
- 使用filter()方法筛选出Material为026000010003的元素
- 使用mapToDouble()方法将元素的quantityInEntryUnit字段映射为double类型的流
- 使用findFirst()方法获取第一个匹配的元素
- 使用orElse()方法设置默认值为0.0
最终结果存储在变量quantity中。如果找不到Material为026000010003的元素,则quantity的值为0.0
原文地址: http://www.cveoy.top/t/topic/huDZ 著作权归作者所有。请勿转载和采集!