【Java 动态数据统计图】动态数据统计思路案例(动态,排序,动态数组(重点推荐))七(129)

需求:前端根据后端的返回数据:画统计图;

说明:

1.X轴为地域,Y轴为地域出现的次数;

  1. 动态展示(有地域展示,没有不展示,且高低排序)

Demo案例

java 复制代码
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class day22 {
	public static void main(String[] args) {
		
		List<Map<String,Object>> list = new ArrayList<>();
		Map<String,Object> map1 = new HashMap<>();
		map1.put("region","西安");
		map1.put("num",1.0);
		Map<String,Object> map2 = new HashMap<>();
		map2.put("region","上海");
		map2.put("num",2.0);
		Map<String,Object> map3 = new HashMap<>();
		map3.put("region","北京");
		map3.put("num",3.0);
		Map<String,Object> map4 = new HashMap<>();
		map4.put("region","西安");
		map4.put("num",1.5);
		Map<String,Object> map5 = new HashMap<>();
		map5.put("region","西安");
		map5.put("num",2.5);
		Map<String,Object> map6 = new HashMap<>();
		map6.put("region","北京");
		map6.put("num",4.0);
		Map<String,Object> map7 = new HashMap<>();
		map7.put("region","成都");
		map7.put("num",1.0);
		Map<String,Object> map8 = new HashMap<>();
		map8.put("region","上海");
		map8.put("num",2.0);
		Map<String,Object> map9 = new HashMap<>();
		map9.put("region","上海");
		map9.put("num",2.5);
		Map<String,Object> map10 = new HashMap<>();
		map10.put("region","上海");
		map10.put("num",2.0);
		Map<String,Object> map11 = new HashMap<>();
		map11.put("region","长沙");
		map11.put("num",2.0);
		Map<String,Object> map12 = new HashMap<>();
		map12.put("region","苏州");
		map12.put("num",2.0);
		Map<String,Object> map13 = new HashMap<>();
		map13.put("region","江西");
		map13.put("num",2.0);
		Map<String,Object> map14 = new HashMap<>();
		map14.put("region","长沙");
		map14.put("num",2.0);
		Map<String,Object> map15 = new HashMap<>();
		map15.put("region","苏州");
		map15.put("num",2.0);
		list.add(map1);
		list.add(map2);
		list.add(map3);
		list.add(map4);
		list.add(map5);
		list.add(map6);
		list.add(map7);
		list.add(map8);
		list.add(map9);
		list.add(map10);
		list.add(map11);
		list.add(map12);
		list.add(map13);
		list.add(map14);
		list.add(map15);
		
		// Set:获取数组中的所有数据:去重
		Set<String> hashSet = new HashSet<>();
		
        for (int i = 0; i < list.size(); i++) {
            String region = String.valueOf(list.get(i).get("region"));
            hashSet.add(region);
        }
        
        String[] regionArr = new String[hashSet.size()];
        int[] valueSort = new int[hashSet.size()];
        // Set转数组
        if(list.size() > 0){
        	regionArr = hashSet.toArray(new String[hashSet.size()]);
        }
        // 根据数组计算每个元素的数量;
        for (int i = 0; i < regionArr.length; i++) {
            for (int j = 0; j < list.size(); j++) {
            	String s = String.valueOf(list.get(j).get("region"));
                if(regionArr[i].equals(s)){
                    valueSort[i] = valueSort[i] + 1;
                }
            }
        }
        // 排序;
        BubblSortUtils.bubbleSortDescMultiple(valueSort,regionArr);
        List<Map<String,Object>> listFinal= new ArrayList<>();
        for (int i = 0; i < regionArr.length; i++) {
            Map<String,Object> map = new HashMap<>();
            map.put("title",regionArr[i]);
            map.put("value",valueSort[i]);
            listFinal.add(map);
        }
        System.out.println("listFinal:"+listFinal);
		
	}
}

测试输出

java 复制代码
listFinal:[{title=上海, value=4}, {title=西安, value=3}, {title=苏州, value=2}, {title=北京, value=2}, {title=长沙, value=2}, {title=江西, value=1}, {title=成都, value=1}]

案例二

java 复制代码
	public List<Map<String,Object>> getRevealData(HttpServletRequest request, Map<String, Object> paramMap) {
        List<Map<String,Object>> list = getCountData(request,paramMap);
        if(list.size() == 0){
            return null;
        }
        // 获取数据的类型;去重
        Set<String> hashSet = new HashSet<>();
        for (int i = 0; i < list.size(); i++) {
            String waysOfProblemReveal = String.valueOf(list.get(i).get("waysOfProblemReveal"));
            hashSet.add(waysOfProblemReveal);
        }
        String[] waysOfProblemArr = new String[hashSet.size()];
        int[] valueSort = new int[hashSet.size()];
        if(list.size() > 0){
            waysOfProblemArr = hashSet.toArray(new String[hashSet.size()]);
        }
        // 根据数组,计算每个元素的个数;
        for (int i = 0; i < waysOfProblemArr.length; i++) {
            for (int j = 0; j < list.size(); j++) {
                String s = String.valueOf(list.get(j).get("waysOfProblemReveal"));
                if(waysOfProblemArr[i].equals(s)){
                    valueSort[i] = valueSort[i] + 1;
                }
            }
        }
        // 数组排序;
        BubblSortUtils.bubbleSortDescMultiple(valueSort,waysOfProblemArr);
        List<Map<String,Object>> listFinal= new ArrayList<>();
        for (int i = 0; i < waysOfProblemArr.length; i++) {
            Map<String,Object> map = new HashMap<>();
            map.put("title",waysOfProblemArr[i]);
            map.put("value",valueSort[i]);
            map.put("sortValue",waysOfProblemArr.length-i);
            listFinal.add(map);
        }
        return listFinal;
    }

postman接口测试

相关推荐
qq_3404740214 分钟前
6.1 python加载win32或者C#的dll的方法
java·python·c#
审计侠29 分钟前
Apache Struts2 漏洞(CVE-2017-5638)技术分析
java·struts·web安全·apache·安全性测试
前往深圳1 小时前
数据结构:LinkedList与链表
java·开发语言·学习
敲键盘的小夜猫1 小时前
Java服务端性能优化:从理论到实践的全面指南
java·开发语言·性能优化
weixin_425878231 小时前
k8s 自动伸缩的场景与工作原理
java·容器·kubernetes
爱的叹息1 小时前
Spring boot 中QPS(Queries Per Second)与 TPS(Transactions Per Second)详细对比
java·spring boot·后端
小小鸭程序员1 小时前
Spring Boot整合MyBatis-Plus实现CRUD操作教程
java·spring boot·python·mysql·spring
Repeat7151 小时前
日志统计(双指针)
java·数据结构·算法·蓝桥杯·双指针·滑动窗口
快来卷java1 小时前
MySQL篇(四)事务相关知识详解
java·数据库·mysql·链表
CodeCraft Studio2 小时前
PDF处理控件Aspose.PDF教程:在Python、Java 和 C# 中旋转 PDF 文档
java·python·pdf