ArrayList list1 = new ArrayList();
List list2 = new ArrayList();
这2种对list的实例化有什么区别,在什么条件下使用哪种比较好?

解决方案 »

  1.   

    List 是個接口 ~   ArrayList 只是實現了這一接口的類
    牛不全是奶牛 
    奶牛是牛
      

  2.   

    接着引用楼上的
    List list2 = new ArrayList(); 
    好处是代码易于维护
    当你想 把奶牛换成黄牛就换成黄牛,想换成水牛就换成水牛
      

  3.   

    建议多看看JAVA基础书。 他们之间的区别有重要。 特别对于要设计程序的人员来说。   
      

  4.   

    面向接口编程,而不是实现类。这样可以提供灵活性。当只需要List接口提供的方法是,你应当总是使用List list = new ArrayList(),然后操做list。
      

  5.   

    顶!
    假如有个方法public List f(){},里面可以return new ArrayList();也可以return new LinkedList();如果你写成
    public ArrayList f(){};的话就只能返回new ArrayList()了,面向接口编程!
      

  6.   

    说的通俗一点
    ArrayList list1 = new ArrayList(); //list1可以调用List接口的方法,也可调用ArrayList类的方法/
    List list2 = new ArrayList() //父类引用指向子类对象,list2 只能调用List接口的方法,不能调用ArrayList的方法了。当你不需要ArrayList类的方法时,还是第二种写法比较好,便于拓展
      

  7.   

    list下还有linkedlist 这样灵活性大吧,如果想用其他数据结构时只要换一处就好了 
      

  8.   

    说的太对了。..
    他就是向上转形,,
    ArrayList 是 list的实现,,
    所以用ArrayList 来向List转形,,然后list来使用
      

  9.   

    面向接口编程,以后想用LinkedList,可以直接换,客户端代码不用关心.如果是第一种,需要查找每个调用的地方.坏处是只能调用List接口中定义的方法,但一般情况下,足矣.
      

  10.   


    list是牛, arrayList是奶牛
      

  11.   

    说的通俗一点 
    ArrayList list1 = new ArrayList(); //list1可以调用List接口的方法,也可调用ArrayList类的方法/ 
    List list2 = new ArrayList() //父类引用指向子类对象,list2 只能调用List接口的方法,不能调用ArrayList的方法了。当你不需要ArrayList类的方法时,还是第二种写法比较好,便于拓展 
      

  12.   

    多态运用!! 个人比较喜欢 Collection c = new ArrayList();创建拓展性好!