hashmap嵌套hashmap如何把数据合成一个二维数组
思路是定义一个二维数组的行和列(行和列的大小是根据两个两个数组来的,两个数组分别是第一行和第一列),通过循环这两个二维数组,取二维数组的值去判断hashmap里是否有这个类型的值,然后对应二维数组的行和列进行一一插入。然后
map的值{{
10={其它=10224.1:1938, 农业生产用电=7615.75:7229, 合计=228420.98:67681, 商业=31612.89:5301, 大工业=82265.52:5730, 居民生活用电=29972.67:10090, 贫困县农业排灌=305.62:1084, 趸售=5147.88:3, 非居民照明=24163.25:8013, 非普工业=37113.31:28293},
110={其它=52.54:5, 合计=127151.96:134, 大工业=95096.25:109, 居民生活用电=142.69:1, 趸售=28729.38:6, 非居民照明=2851.81:5, 非普工业=279.3:8}, 20={合计=0.08:1, 居民生活用电=0.08:1},
220={其它=154.22:2, 合计=131118.31:56, 商业=0.12:1, 大工业=130145.14:50, 居民生活用电=0.07:1, 非居民照明=816.64:1, 非普工业=2.11:1},
35={其它=5849.96:30, 农业生产用电=67.18:8, 合计=71083.84:532, 商业=20.81:4, 大工业=41220.6:300, 居民生活用电=1906.87:42, 贫困县农业排灌=26.08:9, 趸售=20773.85:7, 非居民照明=372.42:81, 非普工业=846.07:51}}}
pricenamenew数组的值 [大工业, 非居民照明, 非普工业, 商业, 居民生活用电, 农业生产用电, 贫困县农业排灌, 趸售, 其它, 合计]
powerlevel数组的值[10kV, 20kV, 35kV, 66kV, 110kV, 220kV, 330kV, 500kV]
将生成的二位数组转换成jsonarray
public void returnData(Map<String, Map<String, String>> map,HttpServletResponse res){
try {
Object[][] obj= new Object[pricenamenew.length+1][powerlevel.length*2+1];//初始化二维数组的大小
for(int i=0;i<pricenamenew.length+1;i++){
int a=1;
int b=1;
int f=0;
for(int j=0;j<powerlevel.length+1;j++){
obj[0][0]=" “;
if(i0 && j>0){
obj[0][a]=powerlevel[j-1]+“电量”;
obj[0][a+1]=powerlevel[j-1]+“用户”;
a=a+2;
}else if(i!=0 && j0){
obj[i][j]=pricenamenew[i-1];
}else if (i!=0 && j!=0 ) {
String ydl=“0”;
String dyhsj=“0”;
if(map.get(powerlevel[f].replace(“kV”,”"))!=null){
Map<String, String> mapkv=map.get(powerlevel[f].replace(“kV”, “”));
if(mapkv.get(pricenamenew[i-1])!=null){
ydl=map.get(powerlevel[f].replace(“kV”,"")).get(pricenamenew[i-1]).split("?[0];
dyhsj=map.get(powerlevel[f].replace(“kV”,"")).get(pricenamenew[i-1]).split("?[1];
}else{
ydl=“0”;
dyhsj=“0”;
}
}else{
ydl=“0”;
dyhsj=“0”;
}
obj[i][b]=ydl;
obj[i][b+1]=dyhsj;
b=b+2;
f=f+1;
}
}
}
JSONArray jsonCounts = JSONArray.fromObject(obj);
res.setCharacterEncoding(“UTF-8”);
PrintWriter out =res.getWriter();
out.println(jsonCounts);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
log.error(“CustomersElectricityStatisticalHelper.process() 方法处理请求失败, 错误信息:” + e.getStackTrace());
}
}
建议!在生成的过程画出要生成二维数组的样式,然后对其进行调试
hashmap嵌套hashmap循环生成二维数组
最新推荐文章于 2022-04-02 21:26:48 发布
