什么时候使用对象数组而不是 ArrayList<>?

When to use Arrays of Objects over ArrayList<>?

我不是问ArraysArrayList<>之间的区别,因为我"guess"我知道大部分,最重要的简要总结:

所以,IMO 最重要的一点表明我们应该在对象数组上使用 ArrayList<>,甚至 Array or List in Java. Which is faster? 的答案表明 ArrayList<> 更快或更建议!我可以轻松识别何时应该使用 ArrayList<> 但我看不到 Arrays of Objects!

的任何特定用例

简而言之,什么时候应该使用Arrays of Objects

使用 Java 的现代集合库,您不再有任何理由在自己的代码中使用本机或原始数组:集合更灵活、更安全。您唯一需要处理原始数组的时间是当您被迫通过与您无法更改的接口集成时。这方面的一个例子是传递给 main 方法的参数。

在我看来,使用集合的第一大优势是您以后可以在不影响其他代码的情况下改变您对实现的想法。从 List<Integer> 切换到 Set<Integer> 比从 int[] 切换到 Set<Integer> 容易 很多

数组至少有一项是泛型所没有的。他们在运行时有自己的类型。因此它们可以相互分配。如果您需要那种信息(例如,您创建了某种框架,通过反射分配不同类型的参数或试图找到方法签名的最佳匹配等),那么数组会更容易一些。但在常规开发列表中通常是更好的选择

如果您知道您将始终拥有一个固定的 length/size,那么使用固定长度的数组就有意义了。这使您可以封装您的意图。它更多的是设计决策而不是性能考虑。灵活性并不总是最好的解决方案。

因为Arrays很简单。这取决于您的要求。当你

  • 有固定长度的数据,无论是对象还是原始类型

  • 只需要进行基本的set(store)和get(retrieve)操作

您首先想到的是 Arrays 而不是 ArrayList。简单是不言自明的。