ArrayList不同初始化的区别
留意到有人在项目中初始化一个ArrayList如下Listlist=newArrayList();上面的初始化和如下有什么区别吗ArrayListlist=newArra...
留意到有人在项目中初始化一个ArrayList如下
List list = new ArrayList();
上面的初始化和如下有什么区别吗
ArrayList list = new ArrayList();
回复xautwuyi:但是ArrayList我们是无法修改的啊。
而且我还想知道,如果这样实例化,那ArrayList自带的方法怎么用?例如clone方法怎么实现,岂不是要在implement cloneable接口了? 展开
List list = new ArrayList();
上面的初始化和如下有什么区别吗
ArrayList list = new ArrayList();
回复xautwuyi:但是ArrayList我们是无法修改的啊。
而且我还想知道,如果这样实例化,那ArrayList自带的方法怎么用?例如clone方法怎么实现,岂不是要在implement cloneable接口了? 展开
展开全部
当然有区别了。
上面那个list变量是List接口的实例,可以再被赋值为所有实现了List接口的类或其子类的实例,这个list变量可以当作List接口及其其父接口作为参数传递。
而下面那个list变量表示ArrayList类的实例,必须是ArrayList类或其子类的实例才可以赋值给这个list变量,这个list变量可以当作ArrayList类或其父类作为参数传递,也可以作为ArrayList类及其父类实现了的接口类型作为参数传递(例如List接口)。
总的说来是多态的应用了。
如果你到最后这个list变量只用作ArrayList类的实例,那么你大可以用下面那种方式,但是上面那种方式更灵活,比如你现在把它复制为 new ArrayList()。那么完全可以把它当作ArrayList类的实例来用,然后用完了你还可以把它赋值为其他的实现了List接口的类的实例当作其他的实例来用
上面那个list变量是List接口的实例,可以再被赋值为所有实现了List接口的类或其子类的实例,这个list变量可以当作List接口及其其父接口作为参数传递。
而下面那个list变量表示ArrayList类的实例,必须是ArrayList类或其子类的实例才可以赋值给这个list变量,这个list变量可以当作ArrayList类或其父类作为参数传递,也可以作为ArrayList类及其父类实现了的接口类型作为参数传递(例如List接口)。
总的说来是多态的应用了。
如果你到最后这个list变量只用作ArrayList类的实例,那么你大可以用下面那种方式,但是上面那种方式更灵活,比如你现在把它复制为 new ArrayList()。那么完全可以把它当作ArrayList类的实例来用,然后用完了你还可以把它赋值为其他的实现了List接口的类的实例当作其他的实例来用
推荐于2017-10-05
展开全部
初始化ArrayList的两种方法
方式一:
ArrayList<String> list = new ArrayList<String>();
String str01 = String("str01");
String str02 = String("str02");
list.add(str01);
list.add(str02);
方式二:
ArrayList<String> list = new ArrayList<String>(){{add("str01"); add("str02");}};
区别如下:
List是一个接口可以有很多的实现,这就叫做多态。
ArrayList 是一个类。
方式一:
ArrayList<String> list = new ArrayList<String>();
String str01 = String("str01");
String str02 = String("str02");
list.add(str01);
list.add(str02);
方式二:
ArrayList<String> list = new ArrayList<String>(){{add("str01"); add("str02");}};
区别如下:
List是一个接口可以有很多的实现,这就叫做多态。
ArrayList 是一个类。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
List是一个接口可以有很多的实现,我们在使用的时候可能会用到不同的子类,用父类进行声明的话,如果实现类改了,只需要改下实例化的部分就可以,不用改变前面声明部分。这就叫做多态。
ArrayList 是一个类。
java是提倡针对接口编程的。
所以一般情况推荐使用第一种方法。
ArrayList 是一个类。
java是提倡针对接口编程的。
所以一般情况推荐使用第一种方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看下API
ArrayList 类 是实现 List 接口
这就很明白了
这两种初始化的list可以看做是一样的
ArrayList 类 是实现 List 接口
这就很明白了
这两种初始化的list可以看做是一样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询