对数据库中获取的数据进行按对应位置封装的问题(难以用一句话讲清楚,劳烦各位)
步骤一:
我现在从数据库中取出来一堆数据,是这样的
,其中"week"字段的格式是:[月份]-[天]-[星期],如"07-05-0"是"7月5日星期日",后面的count是那天所对应的数量
步骤二:
我现在想做的是,将这堆数据进行封装,封装的格式是这样的,
也就是将数据封装进五个集合中,每个集合中分别装有一年十二个月,每个月的第n周的总数量.
注:
我目前的思路是:创建一个二维数组Object][] data = new Object[5,然后将每周的数据封装进新的集合中,再根据时间将新的集合放到相应的二维数组的位置.
如果按照我目前的思路,将数据以及新的集合放到对应的位置是困难的问题,没有想到合适的办法解决.
还得请教各位,有没有新的解决思路,或是有没有什么工具类可以有效的解决问题,还请各位指点!
非常感谢!
回答:
不是很复杂,但是描述起来有点困难。
1、你的前端需要的展示的具体数据,年 月 周 count,这几项数据,应该有一个对象来保存:
年月
周
count
2、构造你的前端表单,这个应该很简单,里面应该有:
年份列表月份列表
周列表
3、这个时候,你可以选择:
1)生成页面的同时,把数据生成进去2)生成页面后,把数据交给前端js,js负责把数据写入表格
4、给你一个简单的思路代码:
// 构造年月周的一个数据结构Map<String, Map<String, Map<String, String>>> years = new HashMap<String, Map<String, Map<String, String>>>();
Map<String, Map<String, String>> months = new HashMap<String, Map<String, String>>();
Map<String, String> weeks = new HashMap<String, String>();
// 模拟你图中的数据,2015年,7月第1、2、3、4周的count、9月第4周的count
weeks.put("1", "1");
weeks.put("2", "1");
weeks.put("3", "3");
weeks.put("4", "2");
months.put("7", weeks);
weeks = new HashMap<String, String>();
weeks.put("4", "2");
months.put("9", weeks);
years.put("2015", months);
// 取值,能取到的就放到table
System.out.println(years.get("2015").get("7").get("1"));
// null的不管
System.out.println(years.get("2015").get("7").get("5"));
以上是 对数据库中获取的数据进行按对应位置封装的问题(难以用一句话讲清楚,劳烦各位) 的全部内容, 来源链接: utcz.com/p/168185.html