社区首页 >问答首页 >创建数组时使用new和不使用new有什么区别?问创建数组时使用new和不使用new有什么区别?ENStack Overflow用户提问于 2020-09-23 23:46:33回答 3查看 56关注 0票数 0我知道有两种方法可以用给定的初始值创建数组
1.int[] ary1 = new int[]{1,2,3,4};
2.int[] ary1 = {1,2,3,4};
它们之间到底有什么区别?
javaarrays关注问题分享EN回答 3推荐最新Stack Overflow用户回答已采纳发布于 2020-09-23 23:53:41
这两条语句都将创建和初始化一个数组。但是,下面的示例说明了不同之处:
代码语言:javascript运行复制import java.util.Arrays;
public class Main {
public static void main(String[] args) {
print(new int[] { 1, 2, 3, 4 });
// print({ 1, 2, 3, 4 });// Won't be compiled
}
static void print(int[] arr) {
System.out.println(Arrays.toString(arr));
}
}收藏分享票数 1ENStack Overflow用户发布于 2020-09-23 23:47:49
在您的示例中没有区别。
但是,new type[]还提供了一个额外的特性-数组长度:
如下所示:
代码语言:javascript运行复制String[] names = new String[5];这使得新的字符串数组具有容纳5个项目的容量。如果其中一项未填充,它将返回null。
收藏分享票数 2ENStack Overflow用户发布于 2020-09-24 02:54:53
以下两种方法都是等效的。
代码语言:javascript运行复制int[] ary1 = {1,2,3,4};
int[] ary1 = new int[] {1,2,3,4};但{}方法只能在声明数组时使用。所以
代码语言:javascript运行复制int[] ary1;
ary1 = {1,2,3,4}; // not permitted.也不是
代码语言:javascript运行复制for (int a : {1,2,3,4}) {
// do something
}它必须是
代码语言:javascript运行复制for (int a : new int[] {1,2,3,4}) {
// do something
}收藏分享票数 0EN页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持原文链接:https://stackoverflow.com/questions/64031673
复制相关文章