java - 在 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 类来做其他事情,并且我可以使用在程序编译时更新的变量来更改大小,但是在这两个中,这被认为是最佳实践?有关系吗?
解决方案
哪个被认为是最佳实践?有关系吗?
首先,提防“最佳实践”。在编程世界中它几乎不存在。
- 当心那些告诉你某事是“最佳实践”的人。以健康的怀疑态度对待他们所说的话。
- 避免要求“最佳实践”。这几乎肯定是一个错误的问题。
阅读并思考这个:
对你的问题。您已经介绍了两种不同的初始化数组的方法,但它们具有不同的特性。
第一个以递增的顺序创建并初始化一个数字数组,从一个开始。数组的大小是一个参数,此代码适用于不同的大小。
第二个也创建并初始化一个递增顺序的数字数组,从一个开始。但在这种情况下,数组的大小由源代码中的初始化程序中的数字数量决定;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
需要改变,显然第二种方法不起作用。
这里有“最佳实践”吗?
显然,不。不同的问题需要不同的方法。一刀切的“最佳实践”是行不通的,更不用说成为所有问题的最佳解决方案了。
这种推理适用于编程中的绝大多数“最佳实践”问题。
推荐阅读
- python - make apply 返回两个系列
- android - > 任务:app:checkDebugManifest FAILED //@React Native
- javascript - 从对象数组中的数据计算平均值并存储在对象的特定键中
- python - 如何在 docker 中连接 MariaDB 和 Python
- c# - Environment.GetCommandLineArgs() 可能会得到一个不受信任的字符串
- javascript - 如何将firebase身份验证与电子一起使用
- for-loop - 有没有办法组合嵌套循环,其中内部循环迭代变量迭代?
- java - Spring MVC 从本地 C: 驱动器读取文件
- dynamics-crm - Dynamic 365 - 检索 API 元数据属性列表 - DateTimeBehavior
- mysql - 在 MySQL 中以 LIFO 方式查找经过的时间