java返回ECharts数据结构封装
🎈边走、边悟🎈迟早会好 |
一、前端页面示例图如下:
二、准备测试数据:
1.定义实体类:
import java.util.*;
import java.util.stream.Collectors;
public class Item {
private String a;
private double b;
private double c;
public Item(String a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public String getA() {
return a;
}
public double getB() {
return b;
}
public double getC() {
return c;
}
@Override
public String toString() {
return "Item{" +
"a='" + a + '\'' +
", b=" + b +
", c=" + c +
'}';
}
}
2.准备测试数据:
// 创建测试数据
List<Item> items = Arrays.asList(
new Item("Mon", 120, 10),
new Item("Tue", 200, 20),
new Item("Wed", 150, 30),
new Item("Thu", 80, 40),
new Item("Fri", 70, 50),
new Item("Sat", 110, 60),
new Item("Sun", 130, 70),
new Item("Mon", 120, 10),
new Item("Tue", 200, 20)
三、后端 格式封装代码:
// 根据a字段进行分组并计算b和c字段的和
Map<String, double[]> groupedData = items.stream()
.collect(Collectors.groupingBy(Item::getA, Collectors.reducing(new double[2],
item -> new double[]{item.getB(), item.getC()}, (a, b) -> new double[]{a[0] + b[0], a[1] + b[1]})));
// 准备ECharts所需的数据格式
String[] xAxisData = groupedData.keySet().toArray(new String[0]);
double[] seriesBData = groupedData.values().stream().mapToDouble(v -> v[0]).toArray();
double[] seriesCData = groupedData.values().stream().mapToDouble(v -> v[1]).toArray();
四、代码说明
-
定义
Item
类:- 包含数据字段
a
、b
和c
,以及对应的构造函数和 getter 方法。
- 包含数据字段
-
分组并计算
b
和c
字段的和:- 使用
Stream
API 和Collectors.groupingBy
方法根据a
字段进行分组。 - 使用
Collectors.reducing
方法来计算每组中b
和c
字段的和。
- 使用
-
准备 ECharts 所需的数据格式:
- 从分组数据中提取 x 轴数据 (
xAxisData
)、b
字段和c
字段的和 (seriesBData
和seriesCData
)。 - 随后 new 个HashMap将三个数组put到map中返回即可:
- 从分组数据中提取 x 轴数据 (
五、最终结果:
🌟感谢支持 听忆.-CSDN博客
🎈众口难调🎈从心就好 |