有个paymentTime,为String类型,记录了时间信息,在List<Orders> ordersList=ordersService.list()之后,怎么按照今年的时间划分成12个月的order_price,并用CollUtil.newArrayList变成12份
时间: 2024-03-26 19:36:18 浏览: 56
可以按照以下步骤进行:
1. 首先将List<Orders> ordersList按照paymentTime进行排序,确保数据是按照时间顺序排列的。
2. 创建一个长度为12的数组,用于存储每个月份的订单总金额。
3. 遍历排序后的订单列表,对于每一个订单,将其价格加入到对应月份的数组元素中。
4. 最后使用CollUtil.newArrayList将数组转化为List,即可得到12份按照月份划分的订单总金额列表。
下面是Java代码示例:
```java
// 对订单列表按照paymentTime进行排序
ordersList.sort(Comparator.comparing(Orders::getPaymentTime));
// 创建长度为12的数组,用于存储每个月份的订单总金额
double[] monthlyOrderPrice = new double[12];
// 遍历排序后的订单列表,将订单总金额加入到对应月份的数组元素中
for (Orders order : ordersList) {
String paymentTime = order.getPaymentTime();
int month = Integer.parseInt(paymentTime.substring(5, 7)) - 1;
double orderPrice = order.getOrderPrice();
monthlyOrderPrice[month] += orderPrice;
}
// 使用CollUtil.newArrayList将数组转化为List
List<Double> monthlyOrderPriceList = CollUtil.newArrayList(monthlyOrderPrice);
```
阅读全文