Java中List和ArrayList的区别

区别用几句话来简单概述就是:
1、List是一个接口,而ArrayList是List接口的一个实现类。
2、 ArrayList类继承并实现了List接口。
3、因此,List接口不能被构造,也就是我们说的不能创建实例对象,但是我们可以像下面那样为List接口创建一个指向自己的对象引用,而ArrayList实现类的实例对象就在这充当了这个指向List接口的对象引用。
因此在java中List list=new List(); 会导致编译出错,这是因为List是一个接口,接口不能被实例化。
ArrayList list=new ArrayList();这种实例化方式就是正确的。这是因为ArrayList是一个类,继承并实现了List接口。
如何实例化List接口?
虽然List不能直接被实例化,但是他可以通过继承自本接口的实现类的对象实例化List对象,如List list=new ArrayList();这种实例化的方式:创建了一个ArrayList实现类的对象后把它上溯到了List接口。此时它就是一个List对象了,它有些ArrayList类具有的,但是List接口没有的属性和方法,它就不能再用了。 而 ArrayList list=newArrayList();创建一对象则保留了ArrayList的所有属性和方法。
两种实例化方式的区别?
那么问题来了,我们为什么不直接使用 ArrayList list=newArrayList();的方式来实例化ArrayList对象,并调用其中的方法,而有时候大部分会通过List list=new ArrayList();来实例化对象呢?
原因有二:
第一,两种实例化的方式由所区别,第一种方式创建的对象继承了ArrayList的所有属性和方法。 而第二种方式创建的对象只能调用List接口中的方法,不能调用ArrayList中的方法。
第二、使用第二种方式创建的对象更为方便。List接口有多个实现类,现在用的是ArrayList,如果要将其更换成其它的实现类,如 LinkedList或者Vector等等,这时只需要改变这一行就行了: List list = new LinkedList(); 其它使用了list地方的代码根本不需要改动。 在编写代码时,较为方便。

  • 24
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值