(1)不能自动扩容,如果要自动扩容,还是使用动态的容器吧,比如:
ArrayList[] alist = new ArrayList[2];
这样,alist数组的每一维都是一个动态数组,你只管调用add往里填东西就可以了。
不过动态数组的时间、空间效率都不如固定的数组,毕竟事情都是有两个方面的。使用时看具体的场合了。(2)应该是List s = new ArrayList();大小写不能混淆。
依据就是ArrayList “is a” List,这就是面向对象三要素之一的“继承”性所决定的。
Object o=new ArrayList()
没错,完全可以,只是o既然是个Object类型的引用,那么你也只能调用Object类的方法,如toString等等。如果再想作为ArrayList或者List来用,就要进行向下转型了:
ArrayList alist = (ArrayList)o;
List list = (List)o;
等等。面向对象的思想需要慢慢体会,只要多看,多实践,理解就会不断加深。

解决方案 »

  1.   

    ArrayList[] alist = new ArrayList[2];
    __________________________________
    应该是ArrayList alist = new ArrayList(2);吧Object o=new ArrayList()后,o就只能用Object 的方法
    而ArrayList o=new ArrayList();后,o可以用ArrayList的所有方法(包括add,remove等)
      

  2.   

    (1):你那样定义的数组是不能自动扩展的,你要是想存不定长的数据,那你可以使用stringbuffer
    (2):list s=new ArrayList();  属于向上转型!因为list是arraylist的父类,即arraylist继承自list,所以upcasting(向上转型)是没有问题的!
      

  3.   

    回复人: F1in2003(无敌超级赛亚人) ( ) 信誉:100  2005-04-06 08:38:00  得分: 0  
     
     
       ArrayList[] alist = new ArrayList[2];
    __________________________________
    应该是ArrayList alist = new ArrayList(2);吧你定义的还是个ArrayList,但楼主现在是需要一个ArrayList数组。
      

  4.   

    其实可以实现手动的动态的扩充,只是这样做的意义不是很大,不如用容器来的简单
    int[][] i = new int[2][2];
    int[][] temp = i;
    i = new int[temp.length][temp[0].length + 1];//需要为列数扩充时
    i = new int[temp.length + 1][temp[0].length];//需要为行数扩充时扩充后把原数祖导回去,再给扩充的单元负上新值就行了~~~
      

  5.   

    list s=new ArrayList()
    我感觉就是为了符合面向接口编程的思想.
      

  6.   

    1 是固定大小的,不能动态扩容。
    2 相当于一个动态的数组吧,list s=new ArrayList(); java中允许把一个子类向上转型到其父类的类型,执行的时候动态绑定是调用子类还是父类中的方法。
      

  7.   

    1. 不行。2. 没啥意义。只是写这个程序的人想让用这个程序的人知道这里十个List,而不用去关心它到底是什么List。
      

  8.   

    ArrayList alResult = new ArrayList();
    alResult.add(new ArrayList());
      

  9.   

    1.ArrayList[] alist = new ArrayList[2];
      在ArrayList()中默认容量是10,之所以动态扩容速度慢,大概是因为要COPY几次才能实现,因此,假如要速度快,我认为只要增加初始容量即可,如new ArrayList(500),那么速度就会快.假如我要初始容量为500,那么ArrayList[]的定义如何下?
    2.ArrayList说白了不过是基于Object[]上的操作封装.那么,我们也可建立基于Object[][]的操作封装,就象ArrayList一样?我是刚学编程,在练手的同时,也可建立一个通用的容量,以便以后使用.
    但不知如何实现,请高手指点一下?
      

  10.   

    steedhorse(晨星) 
    _______________________________
    说的很好啊
      

  11.   

    1 ArrayList alist =new ArrayList(10);2 ArrayList 完全可以胜任
    如要扩展,可考虑包装模式,jdk中用到很多的