集合接口与数组
2022-08-31 22:28:05
我们正在了解集合界面,我想知道你们是否都对它的一般用途有什么好的建议?对于不能对数组执行的操作,可以对集合执行哪些操作?对于不能对集合执行的操作(除了允许重复项之外),您可以对数组执行哪些操作?
我们正在了解集合界面,我想知道你们是否都对它的一般用途有什么好的建议?对于不能对数组执行的操作,可以对集合执行哪些操作?对于不能对集合执行的操作(除了允许重复项之外),您可以对数组执行哪些操作?
想到它的简单方法是:集合以每种方式都击败了对象数组。考虑:
ArrayStoreException
List<Class<? extends E>>
List<Optional<T>>
equals
hashCode
toString
@Nullable
String @Nullable []
上述几个原因在 Effective Java, Third Edition, Item 28 中已经介绍过了,但更详细,从第 126 页开始。
那么,为什么要使用对象数组呢?
List
这基本上是一个期望的抽象层次的问题。
大多数集合都可以在数组方面实现,但是为了您的方便,它们提供了更多的方法。例如,我所知道的大多数集合实现都可以根据需要进行增长和收缩,或者执行基本阵列无法执行的其他“高级”操作。
例如,假设您正在从文件加载字符串。您不知道文件包含多少换行字符,因此您不知道在分配数组时要使用什么大小。因此,ArrayList 是更好的选择。