最近回顾 java 集合,发现大部分程序中都在使用 List list = new ArrayList(); 也有部分程序使用 ArrayList list = new ArrayList(); 那么他们两个有什么差别呢?

  首先,List 集合代表一个 元素有序、可重复的集合,List 是 Collection 的接口的子接口;而 ArrayList 是一个类,还实现 Lits 接口。

  Lits list = new ArrayList(); 这一句创建了 ArrayList 的对象后向上转型到了 List。此时他是一个 List 对象了,这个对象就不能使用 ArrayList 有但是 List 没有的属性和方法。而 ArrayList list = new ArrayList(); 这一句创建的对象则保留了所有 ArrayList 的所有属性和方法。

  那么为什么大多数时候都在使用 List list = new ArrayList(); 呢?问题就在于,List 有多个实现类,如 LinkedList、vector 等,现在你用的是 ArrayList,也许哪一天你需要更换为其他的实现类,这是只需要改变一行代码就可以:List list = new LinkedList(); 其他使用了 list 的地方就不用动了,假设你开始用的是 ArrayList list = new ArrayList(); 那么要改的地方及很多了,尤其是使用了 ArrayList 特有的方法和属性。如果没有特别需求的话,最好使用 List list = new ArrayList(); 便于程序代码重构。这就是面向接口编程的好处。

最新文章

  1. 对抗密码破解 —— Web 前端慢 Hash
  2. vue.js 使用小结
  3. iOS9 3DTouch开发
  4. 二、Spring——AoP
  5. python正则表达式的学习记录
  6. 2014广州Java岗位面试汇总
  7. 文件上传-html
  8. SVN项目库错误Unsupported FS format svn: Expected FS format between '1' and '4'; found format '6'
  9. Visual Studio跨平台开发实战(2) - Xamarin.iOS基本控制项介绍
  10. 5.Java 加解密技术系列之 DES
  11. 家中路由添加静态IP映射(一)
  12. 【Learning】多项式乘法与快速傅里叶变换(FFT)
  13. linq分组求和_实体类和datatable
  14. Eclipse编写ExtJS卡死问题 eclise js验证取消
  15. Python学习之路基础篇--10Python基础,函数进阶
  16. celery(一) application
  17. 【转载】 pytorch之添加BN
  18. linux 下使用 curl post
  19. Chapter 3 Phenomenon——20
  20. Java IO 文件

热门文章

  1. UISearchBar的使用
  2. 接口和类方法中的 SELF
  3. JS中Null与Undefined的区别--2015-06-26
  4. mysql基本优化
  5. lsof指令使用简介
  6. Web鼠标事件
  7. PyCharm学习笔记(一) 界面配置
  8. Python常见文件操作的函数示例
  9. C语言文件操作 FILE结构体
  10. .NET:权限管理