(1) List<?> myList = new ArrayList<?>();

(2) ArrayList<?> myList = new ArrayList<?>();

我知道使用(1)可以交换List接口的实现.似乎(1)通常在应用程序中使用,而不管是否需要(我自己总是使用这个).

我想知道是否有人使用(2)?

此外,在这种情况下,实际需要使用(1)而不是(2)(即(2)不足以)的频率有多高(我能举个例子吗)..除了coding to interfacesbest practices等)

推荐答案

几乎总是List优先于ArrayList,因为例如,List可以被翻译成LinkedList而不影响代码库的其余部分.

如果使用ArrayList而不是List,则很难将ArrayList实现更改为LinkedList实现,因为代码库中已经使用了ArrayList个特定的方法,这也需要重新构建.

你可以阅读关于List实现的here篇文章.

您可能会从ArrayList开始,但很快就会发现另一个实现是更合适的 Select .

Java相关问答推荐

JPackage-results已安装-如何添加系统属性?

Java事件系统通用转换为有界通配符

在for—each循环中的AnimationTimer中的if语句'

将数组整体转换为链接表

XPages-在第二次点击按钮之前延迟

Java 21虚拟线程执行器的性能比池化操作系统线程的执行器差?

将关键字与正文中的_Allowed匹配,但带有__Signing可选后缀

暂停计时器

如何修复PDF重建过程中的文本定位

JOOQ中的子查询使用的是默认方言,而不是配置的方言

如何让JVM在SIGSEGV崩溃后快速退出?

声明MessageChannel Bean的首选方式

使用多个RemoteDatabase对象的一个线程

带有可选部分的Java DateTimeForMatter

具有多个模式的DateTimeForMatter的LocalDate.parse失败

如何制作回文程序?

使用同步方法中的新线程调用同步方法

如何在MPAndroidChart中的条形图上正确添加标签

使用原子整数的共享计数器并发增量

始终使用Spring Boot连接mongodb上的测试数据库