java stream流 ListString list = twoYearAndCurrentMonthDatasget0getJSONArraymonthdatatoJavaListStringclass; 截取list 后一半数据并求出字符串转Bigdemcial 保留两位小数的之和
您可以使用流的skip方法来截取列表的后一半数据,并使用map和reduce方法将字符串转换为BigDecimal并求和。以下是示例代码:
List<String> list = twoYearAndCurrentMonthDatas.get(0).getJSONArray("monthdata").toJavaList(String.class);
List<String> secondHalfList = list.stream()
.skip(list.size() / 2) // 截取后一半数据
.collect(Collectors.toList());
BigDecimal sum = secondHalfList.stream()
.map(BigDecimal::new) // 将字符串转换为BigDecimal
.reduce(BigDecimal.ZERO, BigDecimal::add); // 求和
sum = sum.setScale(2, RoundingMode.HALF_UP); // 保留两位小数
System.out.println("Sum: " + sum);
请注意,上述代码使用了Java 8中的Stream API和BigDecimal类。您需要添加相应的导入语句来引入所需的类和方法。
原文地址: https://www.cveoy.top/t/topic/i8tx 著作权归作者所有。请勿转载和采集!