黑马程序员技术交流社区

标题: List ArrayList问题 [打印本页]

作者: 张卫刚    时间: 2013-3-15 17:34
标题: List ArrayList问题
本帖最后由 张卫刚 于 2013-3-16 00:33 编辑

List<String> list = new ArrayList<String>();
ArrayList<String> list = new ArrayList<String>();
这两个有什么区别,怎么择选,什么情况用第一个,什么情况用第二个,它们存在什么不一样呢?
作者: 姓名长度不符    时间: 2013-3-15 17:51
本帖最后由 姓名长度不符 于 2013-3-15 18:28 编辑

List<String> list = new ArrayList<String>();ArrayList实现了list接口,故以后如果想换容器的话,可以直接换
ArrayList<String> list = new ArrayList<String>();下面的代码里面可能会含有ArrayList的方法
但是如果List<String> list = new LinkedList<String>();list无法访问linklist的方法,所以容器可以根据以后的需求随意更换,为程序提供了很大的灵活性
作者: 罗海云    时间: 2013-3-15 18:21
本帖最后由 罗海云 于 2013-3-15 18:23 编辑

这是多态的表现,目的: 提高了对象的重用性,比如:
List i = new ArrayList(); |
i = new LinkedList();    |   这样就不会报错。
ArrayList l = new ArrayList();
l = new LinkedList();而下面这就会报错。
所以。假如你的对象需要重用就用多态形式。如果不需要就用下面那种
作者: 范天成    时间: 2013-3-15 18:25
List<String> list = new ArrayList<String>();
ArrayList<String> list = new ArrayList<String>();
这两个有什么区别,怎么择选,什么情况用第一个,什么情况用第二个,它们存在什么不一样呢?

第一行写法是多态,不可以调用ArrayList特有的方法,好处是可以提高程序的扩展性。
第二行是就是最普通的生成实例对象的调用。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2