现在在做一个项目,用到在list中添加list的情况,本想通过循环把一个list中的对象一个一个的加入到另一个list中,感觉这样效率太低,看了API发现有一个addAll()的方法可以解决list中加入list的问题。但我发现addAll()有一个重载的方法是addAll(int index, Collection)。如果我要添加的list(就是方法中的Collection参数)有多个,使用这个addAll(Collection)方法好,还是这个方法addAll(int index, Collection)好????????
如果是第二个方法比较好那么在页面呈现数据时有什么要注意的吗?还是跟使用一般的list呈现数据时一样?????

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【jswdw】截止到2008-07-07 10:17:16的历史汇总数据(不包括此帖):
    发帖的总数量:25                       发帖的总分数:220                      
    结贴的总数量:23                       结贴的总分数:180                      
    无满意结贴数:14                       无满意结贴分:295                      
    未结的帖子数:2                        未结的总分数:40                       
    结贴的百分比:92.00 %               结分的百分比:81.82 %                  
    无满意结贴率:60.87 %               无满意结分率:163.89%                  
    值得尊敬
      

  2.   

    那个index 指你放到哪个位置,比如你放到最前面,可以用
    addAll(0,newList);默认是放在末尾的。
    这个关系到结果List的数据出现的先后顺序,如果你不在意顺序,用addAll(list)就行了
      

  3.   

    如果全部是添加到最后的话,那肯定不要去用 addAll 两个参数的啦,用一个参数的可以省掉一些计算步骤。如果是要插入到当中的话,那只能使用两个参数的。
      

  4.   

    楼上说的对,如果是都要添加的话,addAll(Collection<? extends E> c) 
    而且与之前你的顺序是一样的,
      

  5.   

    用addAll(Collection)。
    如果有3个list要加到一个list里:list.addAll(list1).addAll(list2).addAll(list3);
      

  6.   


    不可以哦,list.addAll 返回的是 boolean 类型,并不是返回对象的本身,
    所以说不能使用级联方式调用的,得一个一个地加:list.addAll(list1);
    list.addAll(list2);
    list.addAll(list3);