首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >初始化基元数组

初始化基元数组
EN

Stack Overflow用户
提问于 2012-05-27 23:41:06
回答 6查看 19K关注 0票数 24

我在想,

这两种初始化原语数组的方法到底有什么不同:

int[] arr1 = new int[]{3,2,5,4,1};

int[] arr2 = {3,2,5,4,1};

哪一个是首选的呢?

EN

回答 6

Stack Overflow用户

发布于 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};
}
票数 9
EN

Stack Overflow用户

发布于 2012-05-27 23:44:06

这两种说法没有区别。就我个人而言,第二个是首选的。因为您拥有在大括号中指定的所有元素。编译器将帮助您计算数组的大小。

因此,不需要在赋值操作符之后添加int[]

票数 7
EN

Stack Overflow用户

发布于 2013-09-11 05:17:51

在你的例子中,这两种风格最终的效果是一样的,都是正确的,第二种更简洁。但实际上这两种风格是不同的。

记住,java中的数组是固定长度的数据结构。创建数组后,必须指定长度。

如果没有初始化,第一种情况是

int[] arr1 = new int[5];

第二种情况是

int[] arr2 = {0,0,0,0,0};

你看到区别了吗?在这种情况下,首选第一种样式,因为您不必手动键入所有这些默认初始值。

对我来说,这两种风格之间唯一的最大区别是在没有显式初始化的情况下创建数组。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10775185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档