Java中List生成对象的问题
List<String>list=newArrayList<String>();List<String>list=newList<String>();ArrayList<...
List<String> list = new ArrayList<String>();
List<String> list = new List<String>();
ArrayList<String> list = new ArrayList<String>();
它们有什么区别? 展开
List<String> list = new List<String>();
ArrayList<String> list = new ArrayList<String>();
它们有什么区别? 展开
4个回答
展开全部
首先说明:List是接口,本身不可以实例化,ArrayList是实现了List接口的类。所以List和ArrayList有点像父类和子类的关系,所有能够使用List的地方都可以替换成ArrayList。
List<String> list = new ArrayList<String>();
这个的意思就是创建一个String类型的ArrayList对象,但是将其赋值给List<String>类型的对象,这种用法也可以算作多态的一种应用。好处就是程序中所有使用List的地方,直接用list这个变量就可以了,实际上list是ArrayList类型的实例引用。但使用list的地方不知道也不care这一点。这就实现了多态。
List<String> list = new List<String>();
这个是错误的,因为List是借口,不可以实例化的。
ArrayList<String> list = new ArrayList<String>();
这个就是ArrayList的实例化,与第一种的区别就是,比如有一个函数它的参数是List<String>,那么第一种写法和第三种写法中的list都可以作为参数传入;但是如果有一个函数它的参数是ArrayList<String>,那么就只能用第三种写法的list传入,而不能传入第一种写法的list。
List<String> list = new ArrayList<String>();
这个的意思就是创建一个String类型的ArrayList对象,但是将其赋值给List<String>类型的对象,这种用法也可以算作多态的一种应用。好处就是程序中所有使用List的地方,直接用list这个变量就可以了,实际上list是ArrayList类型的实例引用。但使用list的地方不知道也不care这一点。这就实现了多态。
List<String> list = new List<String>();
这个是错误的,因为List是借口,不可以实例化的。
ArrayList<String> list = new ArrayList<String>();
这个就是ArrayList的实例化,与第一种的区别就是,比如有一个函数它的参数是List<String>,那么第一种写法和第三种写法中的list都可以作为参数传入;但是如果有一个函数它的参数是ArrayList<String>,那么就只能用第三种写法的list传入,而不能传入第一种写法的list。
展开全部
List是interface,无法直接实例化,所以第二句是错误的用法。
之所以更倾向于用第一种而非第三种实例化方法,是为了方便以后更改代码。
这里有个很好的解释。
http://stackoverflow.com/questions/18329311/reason-for-list-list-new-arraylist
之所以更倾向于用第一种而非第三种实例化方法,是为了方便以后更改代码。
这里有个很好的解释。
http://stackoverflow.com/questions/18329311/reason-for-list-list-new-arraylist
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
List是接口,不能直接new List<String>();
ArrayLis是List中的一个实现类
ArrayLis是List中的一个实现类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果要准确地讲,给你发个链接,你看看这位前辈的讲解很详细的。
http://www.cnblogs.com/aisiteru/articles/1151874.html
http://www.cnblogs.com/aisiteru/articles/1151874.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询