Java 数组赋值(多个值)

Posted

技术标签:

【中文标题】Java 数组赋值(多个值)【英文标题】:Java array assignment (multiple values) 【发布时间】:2011-02-04 06:50:02 【问题描述】:

我已经定义了一个 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;

谢谢!

【问题讨论】:

【参考方案1】:
values = new float[]  0.1f, 0.2f, 0.3f ;

【讨论】:

【参考方案2】:

是的:

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

此语法在初始化器中允许使用。你不能在作业中使用它,以下是你能做的最好的:

values = new float[3];

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

试图在语言规范中为此找到参考,但它和以往一样难以阅读。还有人找到吗?

【讨论】:

我想这可能是它,10.6 Array Initializers,java.sun.com/docs/books/jls/third_edition/html/… 这似乎是语法的相关部分:java.sun.com/docs/books/jls/third_edition/html/… - 就个人而言,与类似的文档相比,我一直发现 java 语言规范非常易读。 您可能需要注意底部代码创建了一个新数组。 (如果您想找到一个非常困难的规范,请尝试使用 Algol-68 的规范...及其 2 级语法。搜索“修订后的 Algol-68 报告”。)【参考方案3】:

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

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

当字段已经定义后,试试这个。

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

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

【讨论】:

【参考方案4】:

如果你知道编译时的值,你可以这样做:

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

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

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

您可以使用局部变量,例如:

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

【讨论】:

【参考方案8】:
    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 次。

或者你想设计某种网格。

【讨论】:

添加描述性文字可能有助于其他人理解您的答案【参考方案9】:
int a[] =  2, 6, 8, 5, 4, 3 ; 
int b[] =  2, 3, 4, 7 ;

如果你选择浮点数,那么你就选择浮点数,这是你的选择

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

【讨论】:

【参考方案10】:

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

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

【讨论】:

以上是关于Java 数组赋值(多个值)的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中 如何把一个数组里的值去除掉

java 类型类怎么初始化赋值

java数组的赋值机制

java数组的赋值机制

ES6解构赋值 (数组 , 对象)

解构赋值--数组的解构赋值