int usrsCount = userDAO.getUsersCount();
List list = userDAO.getGroupOrganID();
for(int i=0;i<list.size();i++)
{
Object [] o = (Object [])list.get(i);
o[2] = ((Integer)o[1]/usrsCount);
list.set(i, o);
}代码在上面,原本只有 o[0],o[1],我想添加一列o[2],我上面的代码不行。

解决方案 »

  1.   

    这样肯定不行啊.本来Object []  的宽度就只有2. 你需要重新定义一个宽度为三的数组.Object [] tmp = new Objec[3];然后吧相应的值存进去就可以了.
      

  2.   

    谢谢你的帮助,可是建新的Object[]也不行啊: int usrsCount = userDAO.getUsersCount();
    List list = userDAO.getGroupOrganID();
    List list2 = new ArrayList();
    for(int i=0;i<list.size();i++)
    {
    Object [] o = (Object [])list.get(i);
    Object[] o2 = new Object[3];
    o2[0]=o[0];
    o2[1]=o[1];
    o2[2]=((Integer)o[1]/usrsCount);
    list2.set(i, o2);
    }
    return list2;这回出错了,提示:could not get next iterator result
      

  3.   

    呵呵,提示这个错误是说明你的程序上有问题的.could not get next iterator result  ,这个句话的意思是找不到下一个迭代的结果. 你可能在那里迭代出问题了.
      

  4.   

    list2.set(i, o2); ??list 有set这个方法吗?不都是add方法吗?list2.add(o2);
      

  5.   

    public List getGroupOrganID() {
    //int usrsCount = userDAO.getUsersCount();
    List list = userDAO.getGroupOrganID();
    for(int i=0;i<list.size();i++)
    {
    Object [] o = (Object [])list.get(i);
    Object[] o2 = new Object[3];
    o2[0]=o[0];
    o2[1]=o[1];
    o2[2]=((Integer)o[1]/3.0);
    list.set(i, o2);
    }
    return list;
    }
    list改成这面的可以用了。可是int usrsCount = userDAO.getUsersCount();这句执行不了,我的getUsersCount()函数为:
    public int getUsersCount() {
    return ((Integer)this.getHibernateTemplate().iterate("select count(*) from Tbuser").next()).intValue();
    }报错是为:could not get next iterator result
      

  6.   

    还不如包装个list放进去,用数组还不是很方便。
      

  7.   

    再声明一个list不就解决了么/