何时使用ArrayList上的对象数组<>?

时间:2015-02-11 02:14:38

标签: java arrays arraylist

我不是在询问ArraysArrayList<>之间的区别,因为我“猜测”我知道其中大部分内容,这是对最重要的内容的简要总结:

  • Arrays的固定长度数据,ArrayList<>
  • 的动态和自动增长大小
  • 使用泛型(ArrayList<>
  • 字符串原语(Arrays of Objects,但这不是我主题的主题,因为我在谈论Arrays of Objects
  • 变量和方法命名的几个小差异:lengthsize()add()

因此,IMO最重要的一点表明我们应该使用ArrayList<>而不是对象数组,即使Array or List in Java. Which is faster?的答案表明ArrayList<>更快或更有建议!我可以轻松识别何时应该使用ArrayList<>,但我看不到Arrays of Objects的任何具体用例!

简而言之,我们应该何时使用Arrays of Objects

4 个答案:

答案 0 :(得分:1)

阵列至少有一件事情是仿制药没有。他们在运行时有自己的类型。因此,它们可以彼此分配。如果您需要这种信息(例如,您创建某种框架,通过反射分配不同类型的参数或尝试找到方法签名的最佳匹配等),则数组更容易一些。但在常规开发列表中通常是更好的选择

答案 1 :(得分:0)

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

在我看来,使用集合的第一个优势是,您可以稍后改变您对实现的看法,而不会影响其他代码。从List<Integer>切换到Set<Integer>比从int[]Set<Integer>更容易批次

答案 2 :(得分:0)

如果您知道您将始终拥有固定长度/大小,那么使用固定长度阵列是有意义的。这允许您封装您的意图。它更多的是设计决策而非性能考虑。灵活性并不总是最好的解决方案。

答案 3 :(得分:0)

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

  • 具有固定长度的数据,无论是对象还是基本类型

  • 只需执行基本设置(存储)和获取(检索)操作

首先想到的是Arrays而不是ArrayList。简单是自我解释的。