int []数组和int array []之间的区别

时间:2020-03-06 14:40:58  来源:igfitidea点击:

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

  • int []数组
  • int array []

有区别吗?

解决方案

它们在语义上是相同的。仅添加了" int array []"语法来帮助C程序员习惯Java。

int [] array是更可取的,并且不易混淆。

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

他们是一样的。 (对某些人而言)一种比另一种更具可读性。

它们是完全等效的。首选[int [] array]样式。 int array []仅作为等效的C兼容样式提供。

没什么区别,但Sun建议按照此处的说明将其放在类型旁边

这两个命令是同一件事。

我们可以使用以下语法来声明多个对象:

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

如果我们碰巧在同一声明中声明了多个变量,则有一点细微的区别:

int[] a, b;  // Both a and b are arrays of type int
int c[], d;  // WARNING: c is an array, but d is just a regular int

注意这是不好的编码风格,尽管当我们尝试使用d时,编译器几乎肯定会捕获错误。

两者之间没有任何区别。都声明了一个int的数组。但是,前者是首选,因为它将类型信息全部保留在一个地方。仅出于C / C ++程序员迁移到Java的利益,才真正支持后者。

没有不同。

从Sun引用:

The [] may appear as part of the type at the beginning of the declaration, or as part of the declarator for a particular variable, or both, as in this example: byte[] rowvector, colvector, matrix[];
  
  This declaration is equivalent to:
  byte rowvector[], colvector[], matrix[][];

没有区别。

我更喜欢type [] name格式,很明显该变量是一个数组(不必四处寻找它是什么)。

编辑:

哦,等等,这是有区别的(我忘记了,因为我一次从未声明多个变量):

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

没有真正的区别;然而,

double[] items = new double[10];

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

最优选的选项是int [] a,因为int []是类型,而a是名称。
(第二个选项与此相同,但放错了位置)

在功能上它们之间没有区别。

Java语言规范说:

The [] may appear as part of the type at the beginning of the declaration,
or as part of the declarator for a particular variable, or both, as in this
example:

byte[] rowvector, colvector, matrix[];

This declaration is equivalent to:

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

因此,它们将导致完全相同的字节码。

不,这些都是一样的。然而

byte[] rowvector, colvector, matrix[];

等效于:

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

取自Java Specification。那意味着

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

是不同的。我不建议使用这些多个声明中的任何一个。最容易阅读的可能是:

int[] a;
int[] b;

两种声明样式在功能上没有区别。两者都声明一个int数组。

但是int [] a将类型信息保持在一起,并且更加冗长,因此我更喜欢它。

两者具有相同的含义。但是,这些变体的存在也允许这样做:

int[] a, b[];

与以下内容相同:

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

但是,这是可怕的编码风格,绝不应该这样做。

是的,完全一样。就个人而言,我更喜欢

int[] integers;

因为它使得对阅读代码的任何人而言立即显而易见的是,整数是int的数组,而不是

int integers[];

这并没有那么明显,特别是如果我们在一行中有多个声明的话。但同样,它们是等效的,因此归结为个人喜好。

在Java数组上查看此页面,以获取更多深入的示例。

两者都还可以。我建议选择一个并坚持下去。 (我做第二个)

它们是相同的,但是这些语句之间存在重要的区别:

// 1.
int regular, array[];
// 2.
int[] regular, array;

1.常规只是一个int,而2.常规和array都是int的数组。

因此,第二条陈述是更可取的,因为它更清晰。根据有关Oracle的本教程,不建议使用第一种形式。

虽然" int integers []"解决方案源于C语言(因此可以认为是"常规"方法),但许多人发现" int [] integers"更具逻辑性,因为它不允许创建不同类型的变量(即int和一个数组)在一个声明中(与C样式声明相反)。