/**
 * 将整形对象放到多个List中,然后在将多个List放入一个大的List中
 */
public static void main (String[] args){
  List tem1 = new ArrayList();//大的List,里面放很多小的List
  List tem2 = new ArrayList();
  for(int i=0;i<16;i++){
   tem2.add(new Integer(i));
   /*当tem2凑足5个,就放入tem1*/
  if(i%5==0){
   System.out.println("一"+i+tem2.size());//这里打出tem2的大小不为0
   tem1.add(tem2);//把List tem2放入tem1中
   tem2.clear();//清空tem2
 }
}
for(int i=0;i<tem1.size();i++){
  List temp = (List)tem1.get(i);
  System.out.println("二"+i+temp.size());//这里打出temp的大小为0
  }
}
//为什么得到的tem1.get(i)的大小始终为空,请各位帮忙看看我那里写错了!!
是不是list.add(list)不可以啊!!!!!!!!!!!

解决方案 »

  1.   

    你的tem2.clear()把东东都清空了记住:ArrayList里放的都是reference,所以,你清理了reference指向的东东,里面就空了
      

  2.   

    tem2.clear(); 把东西都清光了。
      

  3.   

    哦,是这样的啊! 那我怎样实现把多个tem2放入tem1呢?
      

  4.   

    诚如大家所言,你对引用确实理解得
    tem2.clear();
    改为tem2 = new ArrayList();就ok了。
      

  5.   

    还有,这句话我觉得最好要改改。
    if(i%5==0){
    改成 if (listTiny.size() == 5) {
    更好些。
      

  6.   

    public static void main (String[] args){
      List tem1 = new ArrayList();//大的List,里面放很多小的List
      List tem2 = new ArrayList();
      for(int i=0;i<16;i++){
       tem2.add(new Integer(i));
       /*当tem2凑足5个,就放入tem1*/
      if(i%5==0){
       System.out.println("一"+i+tem2.size());//这里打出tem2的大小不为0
       tem1.add(tem2);//把List tem2放入tem1中
       //tem2.clear();//清空tem2
       tem2 = new ArrayList();//重新创建一个list对象.
     }
    }
    for(int i=0;i<tem1.size();i++){
      List temp = (List)tem1.get(i);
      System.out.println("二"+i+temp.size());//这里打出temp的大小为0
      }
    }
      

  7.   

    bixuehui(边疆) 多谢了,我去试一下