Java数组赋值(多个值)

Dan*_*ing 22 java variable-assignment

我已经定义了一个Java数组,例如

float[] values = new float[3];
Run Code Online (Sandbox Code Playgroud)

我想在代码中进一步做这样的事情:

values = {0.1f, 0.2f, 0.3f};
Run Code Online (Sandbox Code Playgroud)

但这给了我一个编译错误.是否有更好的方法一次定义多个值,而不是这样做?:

values[0] = 0.1f;
values[1] = 0.2f;
values[2] = 0.3f;
Run Code Online (Sandbox Code Playgroud)

谢谢!

ska*_*man 58

是:

float[] values = {0.1f, 0.2f, 0.3f};
Run Code Online (Sandbox Code Playgroud)

此语法在初始化程序中允许.您不能在作业中使用它,以下是您可以做的最好的:

values = new float[3];
Run Code Online (Sandbox Code Playgroud)

要么

values = new float[] {0.1f, 0.2f, 0.3f};
Run Code Online (Sandbox Code Playgroud)

试图在语言规范中找到一个参考,但它一如既往地难以理解.还有人找到一个吗?

  • 您可能需要注意底部代码会创建一个新数组. (8认同)
  • 这似乎是语法的相关部分:http://java.sun.com/docs/books/jls/third_edition/html/arrays.html#11358 - 就个人而言,我总是发现java语言规范是与类似文件相比,非常易读. (2认同)

Jul*_*ner 8

在声明时,您可以执行以下操作.

float[] values = {0.1f, 0.2f, 0.3f};
Run Code Online (Sandbox Code Playgroud)

如果已定义该字段,请尝试此操作.

values = new float[] {0.1f, 0.2f, 0.3f};
Run Code Online (Sandbox Code Playgroud)

请注意,第二个版本也会创建一个新数组.如果values是对现有字段的唯一引用,则它有资格进行垃圾回收.