嵌套List中元素求和问题

nickowen 2007-08-06 11:56:44
数据库中查询出的结果放入一个List中。每个List元素假设包括:姓名,书本数量,铅笔数量。例如这样:
list.get(0):张三,100,10
list.get(1):李四,200,20
list.get(2):王五,300,30
list.get(3):赵六,400,40
现在需要把第2项与第3项分别求和,如上例,结果就是
(姓名),1000,100
把求出来的结果放在list的结尾,结果如下所示(姓名不用求和):
list.get(4):(姓名为空),1000,100
请教各位,写个方法给我,具体的代码最好。谢谢!
...全文
591 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nickowen 2007-08-06
  • 打赏
  • 举报
回复
不是字符串,原本的是这样的
List list = getJdbcTemplate().queryForList(select * from table1);
然后得出的list就是上面那样
  • 打赏
  • 举报
回复
“赵六,400,40”这一个字符串?如果是的话,你这存的方式就是不对的,应该写个 POJO 类,把值放到 POJO 中,再将这个 POJO 塞到 List 中去,这样会比较方便些。

如果是字符串的话,还得解析这个字符串,而且你用的逗号好像还是不一样的!
andycpp 2007-08-06
  • 打赏
  • 举报
回复
张三,100,10 这3样也是存放在一个list中? 100 和 10 都是字符串类型?
nickowen 2007-08-06
  • 打赏
  • 举报
回复
我要表达的和 myydzhz() 所写的代码的意思差不多了
我已经解决这个问题了,为了项目,唉,没办法
我的解决方法是,直接用SQL语句查询SUM()出来,而后把结果放进list2,再把list2追加到list1的结尾,list1里面前面就是(select * from table1)查询出来的结果,下面是代码
List listAll = getJdbcTemplate().queryForList("select * from table1");
list1.add(listAll);
List list2 = getJdbcTemplate().queryForList("select sum(book) as SUM1,sum(pen) AS SUM2 from table1");
list1.add(list2);
...
然后action里写
List listOther = (List)list1.get(0);
List listSum1 = (List)list1.get(1);
getSession().setAttribute("listSum", listSum1);
...
大概是这个意思了。谢谢各位
myydzhz 2007-08-06
  • 打赏
  • 举报
回复
建议写个类封装数据,应该是
int sunvalue2=0;
int sunvalue3=0;
for(int i=0;list!=null&&list.size();i++)
{
List al_row=(List)list.get(i);
String value1=al_row.get(0);//张三
String value2=al_row.get(1);//100
String value3=al_row.get(2);//10
sunvalue2=sunvalue2+Integer.parseInt(value2);
sunvalue3=sunvalue3+Integer.parseInt(value3);
}
ArrayList tmplist=new ArrayList();
tmplist.add("");
tmplist.add(String.valueOf(sunvalue2));
tmplist.add(String.valueOf(sunvalue3));
list.add(tmplist);
lz应该是这个意思吧

  • 打赏
  • 举报
回复
那要看 queryForList() 方法里面是怎样组织数据的,是字符串拼接呢?还是怎样?

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧