java双循环list数据保存问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java双循环list数据保存问题相关的知识,希望对你有一定的参考价值。

代码如下,tindex里面和gs里面都是一个数组,现在的问题就是,第二次循环的时候,gslist里面的数据也会被刷新,不知道如何与list里面的数据绑定到一起。

TIndex[] tindex = teacherIS.getClassIndexsOfCurAcademicYearByTeacherId((int)session.getUserID());
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < tindex.length; i++)

Map<String, Object> map = new HashMap<String, Object>();//得到班级数据
map.put("className", tindex[i].getName());
map.put("classId", tindex[i].getID());
TClassExam[] gs = em.getClassExamsByClassId((int) tindex[i].getID());
System.out.println(gs.length);
List<Map<String, Object>> gslist = new ArrayList<Map<String, Object>>();
for (int j = 0; j < gs.length; j++)

Map<String, Object> mapgs = new HashMap<String, Object>();
mapgs.put("gsid",gs[j].getId());
mapgs.put("gsname", gs[j].getName());

setAttr("gslist", gslist);
list.add(map);

setAttr("myClassList", list);
意思就是说,有很多班级,然后要根据班级的id去得到考试的数据,tindex[i].getID()这个是班级的id gs 得到的是考试的数组,然后再得到考试数组里面的数据,

参考技术A 很简单啊。。可以将gslist设定为初始值为null的全局变量。然后再在用到它时给他赋值。本回答被提问者采纳 参考技术B 没详细看,但是你在循环里面不断的new东西当然就把前面插入的数据都清空了再重新new了!!追问

意思就是说,有很多班级,然后要根据班级的id去得到考试的数据,tindex[i].getID()这个是班级的id gs 得到的是考试的数组,然后再得到考试数组里面的数据,

参考技术C 你的问题表述不清楚,没明白你要做什么追问

意思就是说,有很多班级,然后要根据班级的id去得到考试的数据,tindex[i].getID()这个是班级的id gs 得到的是考试的数组,然后再得到考试数组里面的数据,

追答

你的mapgs不是已经得到结果了吗。。最终目的是啥额。。

参考技术D 把gslist的定义放到第一层循环的外面追问

如果定义到外面不是又会有多于的数据吗

java list集合合并问题

图片1为查询出的结果,使用java代码实现图片2的效果,
ID 相同的何在一起
图片1
图片2

SELECT ID,PARK_SPACE,SUM(C) AS WM_CONCAT(C) FROM TABLE_图片1表 WHERE 1=1 GROUP BY ID
把这句SQL查询的结果放到你的List中就行了 你的List就有图片2所示的三条数据。
其实 如果你查出的结果最终还是循环保存到数据库中,直接在数据库中操作就行了,不用再到java中再走保存处理,
这样效率会高的多。
不好意思没看清题目,不用sum统计 用 wmsys.wm_concat 字符连接函数,得出的结果就是你图片2中的 WM_CONCAT(C) 显示的结果,该方法使用Oracle10g 以后的版本
SELECT ID,PARK_SPACE,wmsys.wm_concat(C) AS WM_CONCAT(C) FROM TABLE_图片1表 WHERE 1=1 GROUP BY ID
参考技术A 那就修改结果集呗,把PARK_SPACE=‘无’的合并处理下,反正你说的是java实现 参考技术B 算法是最快的数据库实现这种低效率的遍历列表

这些算法在

列表的列表= dao.xxxxxx ;/ /得到一个来自数据库表的集合之前完成最好

这样的查询直接查询清单时指定的位置本回答被提问者和网友采纳
参考技术C group by PARK_SPACE. 参考技术D 先放到map再存回list

以上是关于java双循环list数据保存问题的主要内容,如果未能解决你的问题,请参考以下文章

在循环中保存数据帧列表

java将list集合中的for数据循环添加到String数组中

java map 装入list

java 用返回的list去查询数据库,返回list

R用for循环保存图(保存直方图有效)

详解javaweb中jstl如何循环List中的Map数据_java - JAVA