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();

四、代码说明

  1. 定义 Item:

    • 包含数据字段 abc,以及对应的构造函数和 getter 方法。
  2. 分组并计算 bc 字段的和:

    • 使用 Stream APICollectors.groupingBy 方法根据 a 字段进行分组。
    • 使用 Collectors.reducing 方法来计算每组中 bc 字段的和。
  3. 准备 ECharts 所需的数据格式:

    • 从分组数据中提取 x 轴数据 (xAxisData)、b 字段和 c 字段的和 (seriesBDataseriesCData)。
    • 随后 newHashMap将三个数组putmap中返回即可:

五、最终结果:

 🌟感谢支持 听忆.-CSDN博客

🎈众口难调🎈从心就好

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐