Java数组赋值(多个值)

时间:2010-04-04 21:59:18

标签: java variable-assignment

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

float[] values = new float[3];

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

values = {0.1f, 0.2f, 0.3f};

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

values[0] = 0.1f;
values[1] = 0.2f;
values[2] = 0.3f;

谢谢!

10 个答案:

答案 0 :(得分:57)

是:

float[] values = {0.1f, 0.2f, 0.3f};

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

values = new float[3];

values = new float[] {0.1f, 0.2f, 0.3f};

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

答案 1 :(得分:8)

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

float[] values = {0.1f, 0.2f, 0.3f};

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

values = new float[] {0.1f, 0.2f, 0.3f};

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

答案 2 :(得分:3)

Java不提供将多个值分配给现有数组元素的构造。只能在创建新数组对象时使用初始化程序语法。这可以是声明点,或稍后。但无论哪种方式,初始化器都在初始化一个新的数组对象,而不是更新现有的数组对象。

答案 3 :(得分:2)

values = new float[] { 0.1f, 0.2f, 0.3f };

答案 4 :(得分:1)

如果您在编译时知道这些值,则可以执行以下操作:

float[] values = {0.1f, 0.2f, 0.3f};

如果值是运行时的变量,则无法做到这一点。

答案 5 :(得分:0)

这应该可行,但速度较慢且感觉不对:System.arraycopy(new float[]{...}, 0, values, 0, 3);

答案 6 :(得分:0)

您可以使用本地变量,例如:

    float[] values = new float[3];
    float[] v = {0.1f, 0.2f, 0.3f};
    float[] values = v;

答案 7 :(得分:0)

    public class arrayFloats {
      public static void main (String [] args){
        float [] Values = new float[3];
        float Incre = 0.1f;
        int Count = 0;

        for (Count = 0;Count<3 ;Count++ ) {
          Values [Count] = Incre + 0.0f;
          Incre += 0.1f;
          System.out.println("Values [" + Count + "] : " + Values [Count]);
        }


      }
    }

//OUTPUT:
//Values [0] : 0.1
//Values [1] : 0.2
//Values [2] : 0.3

这不是全部,而是全部为特定数组赋值。由于我已经看到样本为0.1 - 0.3,你可以这样做。如果您正在设计图表和图形,此方法非常有用。你可以让x值增加0.1到第n次。

或者你想设计一些某种网格。

答案 8 :(得分:0)

例如,我尝试了以上所有字符,但它失败了 但这对我有用&gt;&gt;保留一个指针,然后分配值

char A[];
A = new char[]{'a', 'b', 'a', 'c', 'd', 'd', 'e', 'f', 'q', 'r'};

答案 9 :(得分:-1)

int a[] = { 2, 6, 8, 5, 4, 3 }; 
int b[] = { 2, 3, 4, 7 };

如果你拿浮动编号然后你拿浮动并且它是你的选择

这是展示数组元素的好方法。