我最近一直在思考定义数组的两种方式之间的区别:
int[]数组 int[]数组
有区别吗?
我最近一直在思考定义数组的两种方式之间的区别:
int[]数组 int[]数组
有区别吗?
当前回答
在声明单个数组引用时,它们之间没有太大区别。所以下面两个声明是一样的。
int a[]; // comfortable to programmers who migrated from C/C++
int[] a; // standard java notation
当声明多个数组引用时,我们可以找到它们之间的区别。下面两句话的意思是一样的。事实上,这取决于程序员遵循哪一个。但是建议使用标准的Java表示法。
int a[],b[],c[]; // three array references
int[] a,b,c; // three array references
其他回答
它们在语义上是相同的。添加int array[]语法只是为了帮助C程序员适应java。
Int[]数组更可取,而且更容易混淆。
是的,完全一样。就我个人而言,我更喜欢
int[] integers;
因为它让任何阅读你代码的人都能一眼看出integers是一个int型数组,而不是
int integers[];
这并不是很明显,特别是当您在一行中有多个声明时。但同样,它们是相等的,所以这取决于个人偏好。
查看这一页关于Java中的数组的更深入的示例。
如前所述,没有太大区别(如果每行只声明一个变量)。
请注意,SonarQube将你的第二个情况视为一个次要的代码气味:
数组指示符“[]”应该在类型上,而不是变量上(squid:S1197) 数组指示符应该始终位于类型上,以便更好地编写代码 可读性。否则,开发人员必须同时查看类型和 变量名,以了解变量是否为数组。 不合规代码示例 int[][]矩阵;/ /不合格 int[][]矩阵;/ /不合格 兼容的解决方案 int[][]矩阵;/ /兼容
在Java中,这只是说同一件事的不同语法方法。
不,这些是一样的。然而
byte[] rowvector, colvector, matrix[];
等价于:
byte rowvector[], colvector[], matrix[][];
摘自Java规范。这意味着
int a[],b;
int[] a,b;
是不同的。我不推荐这两种声明。最容易读的(可能)是:
int[] a;
int[] b;