JAVA中的数组概念

JAVA中的数组概念,java,Java,考虑在Java中声明数组类型变量的两种方法: 1语法:数据类型[]arrayRefVar 例如: double[] myList; double myList[]; 2语法:数据类型arrayRefVar[] 例如: double[] myList; double myList[]; 为什么第一个语法优于第二个?< p>它们是100%个函数相同但第一个形式在C或C++中是不允许的,在我看来更容易知道它是数组。 int[] a; // <-- not valid in C (or C

考虑在Java中声明数组类型变量的两种方法:

1语法:数据类型[]arrayRefVar

例如:

double[] myList;
double myList[];
2语法:数据类型arrayRefVar[]

例如:

double[] myList;
double myList[];

为什么第一个语法优于第二个?

< p>它们是100%个函数相同但第一个形式在C或C++中是不允许的,在我看来

更容易知道它是数组。
int[] a; // <-- not valid in C (or C++)

在第一个示例中,所有类型信息都在一个位置—变量的类型是dataType数组,因此dataType[]就是这么说的

为什么类型信息有两个方面在不同的地方——一个是元素类型名称,另一个是变量

请注意,您可能会做一些令人困惑的事情:

int[] x[]; // Equivalent to int[][] x

哎呀

另外请注意,如果以后要使用集合类型而不是数组,则数组语法更接近通用语法。例如:

String[] foo


基本上,INTFO[]语法只包含在java中,使它看起来更像C++和C++。我个人认为这是一个错误——尽管它强烈地被劝阻了,但它仍然不能从语言中去除:

< P> >没有区别,它的写作偏好来自C和C++语言。p> 查看阵列上的JLS:

[]可能作为类型的一部分出现在 声明,或作为特定 变量,或两者都有


无论哪一个对你和你的同事来说更可读。除了可读性之外,没有任何行为/性能上的差异。@JunedAhsan:好吧,以对您和所有阅读您的代码的人来说最可读的为准。请按照发布指南格式化内容。@Jonsket True,如果不打扰其他编码人员,就没有乐趣-编写数组定义组件序列的最佳方法是按照您的拼写方式编写它们:int[]foo拼写为整数数组foo,而int foo[]拼写为整数foo数组,这不像第一个概念那么自然。在Java中,什么是“仅合法”?它在其他语言中也是合法的,在Java中也是合法的…@JonSkeet编辑。读得更好?我想说这不是合法的C或C++。我建议你确切地说,然后给出了多少种语言,包括模糊的语言,我强烈怀疑java不是第一个使用Foo[]用于FoO元素数组的语言。