在Java中创建数组有哪些约定?我应该使用
int[] myIntArray;
或
int myIntArray[];
此外,最好在创建时或之后初始化它们的值吗?
int[] myIntArray = {1,2,3};
VS
int[] myIntArray;
myIntArray = new int[] {1,2,3};
答案 0 :(得分:3)
在声明一个数组时,约定说方括号包含数据类型而不是数组变量。
int[] myIntArray; // This is the convention
int myIntArray[]; // Ok by syntax, but not the Java convention
初始化值完全取决于您的使用情况,但最好有完整的数组声明
int[] myIntArray = new int[]{1,2,3}; // Better
int[] myIntArray = {1,2,3}; // Ok by syntax, but not the convention
答案 1 :(得分:3)
int[] a
和int a[]
的声明都是等效的。
它只是一种替代方式来编写它,因为数组索引可以放在类型名称之后以及标识符名称之后。唯一不同的是,如果在一行中声明多个变量,如果索引放在类型名称之后,则所有列出的标识符将是该类型的数组,而如果索引放在标识符名称之后,则只有该标识符将是数组
示例:强>
int[] array1, array2; // Both are arrays
int array3[], notArray4; // Only array3 is array
我建议在类型(int [] array1)之后放置索引,这样它就会毫不含糊。
在您尽可能声明时正确初始化数组,因为效率更高。如果你没有立即初始化你的数组,那么JVM将使用零或null
值初始化它,你必须稍后填写它会更慢,因为那时JVM也将执行数组索引范围检查等等。更不用说你的代码会更长,更难阅读,你必须明确地提供索引(你可能会犯错),而在枚举你不提供索引的数组元素时(它们是隐含地推断出来的)数组长度。)
初始化示例:
// "Slow" filling
int[] arr = new int[3]; // Filled with zeros by default
arr[0] = 1; // Explicit index, index check
arr[1] = 2; // Explicit index, index check
arr[2] = 3; // Explicit index, index check
// "Fast" filling at creation time, implicit indices and array length,
// no index checks
int[] arr2 = {1, 2, 3};
答案 2 :(得分:0)
我认为取决于项目的代码标准。没有更好的方法。 就我而言,我使用
int[] myIntArray = {1,2,3};
答案 3 :(得分:0)
这两种可能,但int[] arrayname
更清楚,因为类型不是int,而是int数组(int[]
)。 Java Conventions执行相同的操作,如第19页所示。
int[] myIntArray = { 1, 2, 3 };
更短,而且在我看来,更加整洁。
答案 4 :(得分:0)
int[] anArray; // Declares an array of integers
anArray = new int[10]; // One way to create an array is with the new operator
或者,您可以使用快捷语法创建和初始化数组:
int[] anArray = {
100, 200, 300,
400, 500, 600,
700, 800, 900, 1000
};
声明数组引用时,应始终将数组括号放在声明的类型之后,而不是在标识符(变量名称)之后。这样,任何阅读代码的人都可以很容易地告诉我,例如,key是对int数组对象的引用,而不是int原语。
int[] key;
int key [];
同样在page detailing the initialization个变量上,他们有这个例子,演示了将括号放在变量名后面的可能问题:
int foo, fooarray[]; // WRONG!