首页 > 解决方案 > 在 java 中向数组提供元素时,最佳实践是什么?

问题描述

从 python 迁移过来后,我正在学习 java。数组赋值的方式对我来说有点新。我可以使用这个:

int[] myArray = new int[size];
for (int i = 0; i < size; i++) {
    a[i] = i;
}

或者:

int[] otherArray = {1, 2, 3, 4, 5, ...};
// or this
int[] otherArray = new int[]{1, 2, 3, 4, 5, ...};

我知道我可以使用 ArrayList 类来做其他事情,并且我可以使用在程序编译时更新的变量来更改大小,但是在这两个中,这被认为是最佳实践?有关系吗?

标签: javaarrays

解决方案


哪个被认为是最佳实践?有关系吗?

首先,提防“最佳实践”。在编程世界中它几乎不存在

  • 当心那些告诉你某事是“最佳实践”的人。以健康的怀疑态度对待他们所说的话。
  • 避免要求“最佳实践”。这几乎肯定是一个错误的问题。

阅读并思考这个:


对你的问题。您已经介绍了两种不同的初始化数组的方法,但它们具有不同的特性。

  • 第一个以递增的顺序创建并初始化一个数字数组,从一个开始。数组的大小是一个参数,此代码适用于不同的大小。

  • 第二个也创建并初始化一个递增顺序的数字数组,从一个开始。但在这种情况下,数组的大小由源代码中的初始化程序中的数字数量决定;IE

    int[] otherArray = {1, 2, 3, 4};    // produces a 4 value array
    

    或者

    int[] otherArray = {1, 2, 3, 4, 5}; // produces a 5 value array
    

那么哪个更好呢?

这取决于你想要做什么。

  • 如果您想要一个具有始终相同数量的数字的小数组,则第二种方法更简单并且(可以说)更好。
  • 如果您想要一个没有简单算法来生成值的数组,那么第一种方法(依赖于简单算法)不起作用。
  • 如果你想初始化一个大数组(比如数百个元素),第二种方法很麻烦。
  • 如果size需要改变,显然第二种方法不起作用。

这里有“最佳实践”吗?

显然,不。不同的问题需要不同的方法。一刀切的“最佳实践”是行不通的,更不用说成为所有问题的最佳解决方案了。

这种推理适用于编程中的绝大多数“最佳实践”问题。


推荐阅读