【日常开发】 java返回ECharts数据结构封装

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博客

🎈众口难调🎈从心就好

  • 16
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值