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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张卫刚 中级黑马   /  2013-3-15 17:34  /  1128 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张卫刚 于 2013-3-16 00:33 编辑

List<String> list = new ArrayList<String>();
ArrayList<String> list = new ArrayList<String>();
这两个有什么区别,怎么择选,什么情况用第一个,什么情况用第二个,它们存在什么不一样呢?

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 姓名长度不符 于 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的方法,所以容器可以根据以后的需求随意更换,为程序提供了很大的灵活性

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 罗海云 于 2013-3-15 18:23 编辑

这是多态的表现,目的: 提高了对象的重用性,比如:
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>();
这两个有什么区别,怎么择选,什么情况用第一个,什么情况用第二个,它们存在什么不一样呢?

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

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

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