我最近一直在思考定义数组的两种方式之间的区别:

int[]数组 int[]数组

有区别吗?


当前回答

没有区别。

我更喜欢类型[]名称格式,很明显变量是一个数组(更少四处寻找它是什么)。

编辑:

哦,等等,有区别(我忘记了,因为我从来没有一次声明一个以上的变量):

int[] foo, bar; // both are arrays
int foo[], bar; // foo is an array, bar is an int.

其他回答

在Java中,这只是说同一件事的不同语法方法。

不,这些是一样的。然而

byte[] rowvector, colvector, matrix[];

等价于:

byte rowvector[], colvector[], matrix[][];

摘自Java规范。这意味着

int a[],b;
int[] a,b;

是不同的。我不推荐这两种声明。最容易读的(可能)是:

int[] a;
int[] b;

Java语言规范第10.2节:

[]可以作为类型的一部分出现在声明的开头,也可以作为特定变量的声明器的一部分出现,或者两者都有,如下例所示: 字节[]行向量,共向量,矩阵[]; 此声明等价于: 字节行向量[],共向量[],矩阵[][];

就我个人而言,我见过的几乎所有Java代码都使用第一种形式,这种形式更有意义,因为它将关于变量的所有类型信息保存在一个地方。说实话,我希望第二种形式被禁止……但生活就是这样……

幸运的是,我认为我从未见过这样的(有效的)代码:

String[] rectangular[] = new String[10][10];

这两个命令是一样的。

你可以使用语法来声明多个对象:

int[] arrayOne, arrayTwo; //both arrays

int arrayOne[], intOne; //one array one int 

参见:http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html

没有真正的区别;然而,

double[] items = new double[10];

首选,因为它清楚地表明类型是数组。