Java-Better Programming Practice中的集合

在大多数使用集合的 Java代码中,我看到类似的东西.

List<String> list = new ArrayList<String>();

但我总是想知道为什么它更受欢迎

ArrayList<String> = new ArrayList<String>();

我研究了一下但是不能理解很多.

解决方法

因为通过其界面使用对象时,您可以稍后更改实现.例如:

public ArrayList<String> doSomething(..) {
    ...
    return arrayList;
}

但是过了一段时间,看起来ArrayList对于这个方法调用者最常使用的是低效的,所以你决定将它改为LinkedList.

>如果您的方法只返回List,那么您就完成了
>如果您的方法返回ArrayList,您应该转到调用方法的所有位置并更改它.如果有人使用某些特定于arraylist的方法会怎样 – 你必须考虑如何重构它.这是一个很好的方案.如果您的代码是库,而其他分支机构/公司正在使用它,您可能会遇到效率低下的代码.

也可以看看:

> What does it mean to “program to an interface”?
> “Program to an interface”. What does it mean?

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...