英文:
What's difference between use new or not when i create an array?
问题
我知道有两种方法可以使用给定的初始值创建数组:
-
int[] ary1 = new int[]{1,2,3,4};
-
int[] ary1 = {1,2,3,4};
这两者之间究竟有什么区别呢?
英文:
I know there are two ways to create an array with given initial value
1.int[] ary1 = new int[]{1,2,3,4};
2.int[] ary1 = {1,2,3,4};
What exactly difference between those?
答案1
得分: 2
没有在您的示例中有任何区别。
但是,new type[]
提供了一个额外的功能 - 数组长度:
就像这样:
String[] names = new String[5];
这将创建一个新的 String 数组,具有容纳 5 个项的能力。如果其中一个项目没有被填充,它将返回 null
。
英文:
There is no difference in your example.
However, there is one extra feature that new type[]
provides - array length:
Like so:
String[] names = new String[5];
Which makes a new String array with the capacity to hold 5 items. If one of the items is not populated, it will return null
.
答案2
得分: 1
你的两个语句都会创建并初始化一个数组。然而,下面的示例展示了一个区别:
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 }); // 无法编译通过
}
static void print(int[] arr) {
System.out.println(Arrays.toString(arr));
}
}
英文:
Both of your statements will create and initialize an array. However, the following example illustrates a difference:
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));
}
}
答案3
得分: 0
以下是翻译好的内容:
两者均等如下。
int[] ary1 = {1,2,3,4};
int[] ary1 = new int[] {1,2,3,4};
但{}
方法只能在数组声明时使用。因此,
int[] ary1;
ary1 = {1,2,3,4}; // 不允许。
也不是
for (int a : {1,2,3,4}) {
// 做一些事情
}
而应该是
for (int a : new int[] {1,2,3,4}) {
// 做一些事情
}
英文:
Both of the following are equivalent.
int[] ary1 = {1,2,3,4};
int[] ary1 = new int[] {1,2,3,4};
But the {}
method can only be used when the array is declared. So
int[] ary1;
ary1 = {1,2,3,4}; // not permitted.
Nor is
for (int a : {1,2,3,4}) {
// do something
}
It has to be
for (int a : new int[] {1,2,3,4}) {
// do something
}
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论