之间有区别吗?
int[] array = new int[10];
和
int array[] = new int[10];
两者都有效,结果完全相同。哪一个更快或更好?是否有推荐一个风格指南?
答案 0 :(得分:99)
两者都是等价的。看看以下内容:
int[] array;
// is equivalent to
int array[];
int var, array[];
// is equivalent to
int var;
int[] array;
int[] array1, array2[];
// is equivalent to
int[] array1;
int[][] array2;
public static int[] getArray()
{
// ..
}
// is equivalent to
public static int getArray()[]
{
// ..
}
答案 1 :(得分:8)
它们基本相同,任何类型的性能都没有区别,但推荐的是第一种情况,因为它更具可读性。
int[] array = new int[10];
FROM JLS:
[]可能会出现在开头的类型中 声明,或作为特定变量的声明者的一部分, 或两者兼而有之。
答案 2 :(得分:8)
来自JLS http://docs.oracle.com/javase/specs/jls/se5.0/html/arrays.html#10.2
以下是不创建数组的数组变量的声明示例:
int[ ] ai; // array of int
short[ ][ ] as; // array of array of short
Object[ ] ao, // array of Object
otherAo; // array of Object
Collection<?>[ ] ca; // array of Collection of unknown type
short s, // scalar short
aas[ ][ ]; // array of array of short
以下是创建数组对象的数组变量声明的一些示例:
Exception ae[ ] = new Exception[3];
Object aao[ ][ ] = new Exception[2][3];
int[ ] factorial = { 1, 1, 2, 6, 24, 120, 720, 5040 };
char ac[ ] = { 'n', 'o', 't', ' ', 'a', ' ',
'S', 't', 'r', 'i', 'n', 'g' };
String[ ] aas = { "array", "of", "String", };
[]可以作为声明开头的类型的一部分出现,也可以作为特定变量的声明者的一部分出现,或者两者都出现,如下例所示:
byte[ ] rowvector, colvector, matrix[ ];
此声明相当于:
byte rowvector[ ], colvector[ ], matrix[ ][ ];
答案 3 :(得分:4)
两者都是一样的。
我通常使用int[] array = new int[10];
,因为类型int[]
的可读性更好(连续)。
答案 4 :(得分:2)
不,没有区别。但我更喜欢使用int[] array
,因为它更具可读性。
答案 5 :(得分:2)
这两个声明之间没有区别,两者都具有相同的性能。
答案 6 :(得分:0)
几乎没有区别。
答案 7 :(得分:0)
在这两个示例中,您都将new int[10]
分配给引用变量。
以任一方式分配给引用变量的性能相同。
int[] array = new int[10];
上述符号被认为是可读性的最佳做法。
干杯