最近回顾 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(); 便于程序代码重构。这就是面向接口编程的好处。
如对本文有疑问, 点击进行留言回复!!
荐 深入理解Java中的BigInteger和 BigDecimal,再也不怕面试了
tomact正常启动,但是在日志文件报错java.lang.NoClassDefFoundError: java/util/logging/Logger
servlet整合quartz:servlet中使用quartz,服务器启动时加载任务
荐 Java——集合中的Map接口通过HashMap类实现一些常用的方法
SpringBoot整合mybatis访问时报错Invalid bound statement (not found)
网友评论