优化这段代码 for(String s : yearMonthList){ xAxis.add(s + "月"); if(mapList.stream().filter(m -> s.equals(m.get("date").toString())).collect(Collectors.toList()).size() > 0){ Map map = mapList.stream().filter(m -> s.equals(m.get("date").toString())).findFirst().get(); doubleList.add(Double.valueOf(map.get("count").toString())); }else { doubleList.add(0.0); } }
时间: 2024-02-01 13:02:14 浏览: 97
vue-基于Vue2.0+ECharts封装的图表组件.zip
这段代码可以进行如下优化:
1. 使用一个 Map 来存储 mapList 中的数据,而不是每次都进行过滤查找,可以减少时间复杂度。
2. 使用 forEach 循环遍历 yearMonthList,而不是 for-each 循环,可以使代码更加简洁。
3. 在获取 count 值时,可以将其转换为 Double 类型,而不是先转换为字符串再转换为 Double 类型。
下面是优化后的代码:
```java
Map<String, Double> map = new HashMap<>();
mapList.forEach(m -> map.put(m.get("date").toString(), Double.valueOf(m.get("count").toString())));
yearMonthList.forEach(s -> {
xAxis.add(s + "月");
doubleList.add(map.getOrDefault(s, 0.0));
});
```
阅读全文