我在想,
这两种初始化原语数组的方法到底有什么不同:
int[] arr1 = new int[]{3,2,5,4,1};
int[] arr2 = {3,2,5,4,1};
哪一个是首选的呢?
发布于 2012-05-28 00:05:13
正如其他人所提到的,它们是等效的,第二个选项不那么冗长。不幸的是,编译器并不总是能够理解第二种选择:
public int[] getNumbers() {
return {1, 2, 3}; //illegal start of expression
}
在这种情况下,您必须使用完整的语法:
public int[] getNumbers() {
return new int[]{1, 2, 3};
}
发布于 2012-05-27 23:44:06
这两种说法没有区别。就我个人而言,第二个是首选的。因为您拥有在大括号中指定的所有元素。编译器将帮助您计算数组的大小。
因此,不需要在赋值操作符之后添加int[]
。
发布于 2013-09-11 05:17:51
在你的例子中,这两种风格最终的效果是一样的,都是正确的,第二种更简洁。但实际上这两种风格是不同的。
记住,java中的数组是固定长度的数据结构。创建数组后,必须指定长度。
如果没有初始化,第一种情况是
int[] arr1 = new int[5];
第二种情况是
int[] arr2 = {0,0,0,0,0};
你看到区别了吗?在这种情况下,首选第一种样式,因为您不必手动键入所有这些默认初始值。
对我来说,这两种风格之间唯一的最大区别是在没有显式初始化的情况下创建数组。
https://stackoverflow.com/questions/10775185
复制相似问题