2025-05-07 20:27:07 今天世界杯

社区首页 >问答首页 >创建数组时使用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

复制相关文章