java中 List mylist =new ArrayList 理解


List是java.util包中的一个定义集合对象的接口,ArrayList是实现List接口的实现类。 
单就这个语法而言,如使用List mylist =new ArrayList();定义对象时,比使用ArrayList mylist =new ArrayList();易于扩展;如当你在使用中发现ArrayList类型的对象不能满足你的使用要求时,你可以改成其他的实现List接口的对象类修改你的对象,如mylist = new LinkedList();这样就不需要再定义新的对象了。 
深一点讲:这属于面向接口的编程。接口是java为了解决多继承的问题(java中不支持多继承)而设定的。但有了接口后,便有了面向接口的编程。 
一个接口可以对应多个实现类,对于声明为接口类型的方法参数、类的字段,它们要比实现类更易于扩展、稳定。 
面向接口编程带来的好处是很多,减少耦合度,只要增加新的功能即可,不用动原来的程序。23种设计模式大部分是用面向接口编程来实现的。
说的形象一点:就是把自己当成人来思考。
 
最简单的说,List是一个接口,ArrayList是一个类,并且ArrayList实现了List接口的所有方法。 
前者的好处就是:当这个集合作为返回值时(返回List类型),无论以后笔者是否要更换新的集合(就是将ArrayList更换成其他的集合),比如说Vector或者LinkedList,都不用再次更换这个方法要返回的值,因为这些集合类型都实现了List接口。从而也不用再次更改调用这个方法的方法中的代码,从而大大减小了代码耦合。 
就是说,不用改更多的代码了。

无论以后的工作还是学习中,这样做都是应当提倡的!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值