A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kimi 中级黑马   /  2013-6-19 14:23  /  1942 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Super_Class 于 2013-6-19 19:28 编辑

我之前一直用的是List 但这两天看老毕的视频,好多用的是ArrayList
他们有什么区别么,该如何选择呢
List<String> list = new ArrayList<String>();
ArrayList<String> list = new ArrayList<String>();

评分

参与人数 1技术分 +1 收起 理由
Super_Class + 1

查看全部评分

4 个回复

倒序浏览
List<String> list = new ArrayList<String>();面向接口编程,子类为父接口实例化
ArrayList<String> list = new ArrayList<String>();正常的实例化。
看一下父接口中的方法和子类中的方法就会发现其实差别不大!
回复 使用道具 举报
List<String> list = new ArrayList<String>();ArrayList实现了list接口,故以后如果想换容器的话,可以直接换,此种写法是多态,不可以调用ArrayList特有的方法,好处是可以提高程序的扩展性。

ArrayList<String> list = new ArrayList<String>();此行就是最普通的生成实例对象的调用下面的代码里面可能会含有ArrayList的方法
但是如果List<String> list = new LinkedList<String>();list无法访问linklist的方法,所以容器可以根据以后的需求随意更换,为程序提供了很大的灵活性
这是多态的表现,目的: 提高了对象的重用性,比如:
List i = new ArrayList(); |
i = new LinkedList();    |   这样就不会报错。
ArrayList l = new ArrayList();
l = new LinkedList();而下面这就会报错。
所以。假如你的对象需要重用就用多态形式。如果不需要就用下面那种

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1

查看全部评分

回复 使用道具 举报
使用List<String> list = new ArrayList<String>();是多态,更能体现面向对象呀。
回复 使用道具 举报
ArrayList<String> list = new ArrayList<String>();这是一般的创建对象的方法,本类引用指向本类对象
List<String> list = new ArrayList<String>();这是面向对象中的多态,好处是可以提高代码的扩展性,提高效率,也便于后期代码的更改。是重点知识,必须掌握,在实际开发中应用较多

评分

参与人数 1技术分 +1 收起 理由
Super_Class + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马