没事过,你用b.add((object)a); 试试看

解决方案 »

  1.   

    ArrayList a=new ArrayList();
                 ArrayList b=new ArrayList();
        for(int j=0;j<3;j++)
        {    a=new ArrayList(); for(int i=0;i<10;i++)
    {
        a.add("1");
    }
             b.add(a);
                      a=null;
        }
        System.out.println(b.size());
        for(int k=0;k<3;k++)
        {
         ArrayList c=new ArrayList();
         c=(ArrayList)b.get(k);//?????????????????????
         System.out.println(c.size());
         for(int m=0;m<10;m++)
         {
         c.get(m);
         }
        }
    -----------------------
    这样应该就好用
      

  2.   

    原因是你的a一直所指的是一个对象;
    它虽然在第一次循环后存入了b,
    但在后面的循环中,a所指对象又加入到了30个字符串;
    所以你取a的个数,当然就是30了
    而我修改的就是让a在经过第一次循环后,不在指向这个存有10个字符串的对象;
    而重新建立一个对象;
    让这个对象在存入10个字符串;
    依次
    所以我上面执行的结果就是
    在你的?号处,都显示10
      

  3.   

    加个object应该不行,第二位说的对.因为add默认是往后加.
      

  4.   

    HITZXL(编程要厚道) 正解
    你第一次都是同一个a
    所以都是30个