web-dev-qa-db-ja.com

Java配列の割り当て(複数の値)

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;

ありがとう!

22
Danny King

はい:

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

この構文はonly初期化子で許可されています。割り当てで使用することはできません。次の方法が最善です。

values = new float[3];

または

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

このための言語仕様で参照を見つけようとしますが、それはこれまでと同じように読めません。他の誰かが見つけますか?

58
skaffman

宣言時に、次のことができます。

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

フィールドが既に定義されている場合、これを試してください。

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

2番目のバージョンでも新しい配列が作成されることに注意してください。 valuesが既存のフィールドへの唯一の参照である場合、ガベージコレクションの対象になります。

8
Julian Lettner

Javaは、既存の配列の要素に複数の値をassignする構成を提供しません。初期化構文は、新しい配列オブジェクトを作成するときにのみ使用できます。これは、宣言の時点で、または後で可能です。ただし、いずれにしても、イニシャライザーは既存の配列オブジェクトを更新するのではなく、新しい配列オブジェクトを初期化します。

3
Stephen C
values = new float[] { 0.1f, 0.2f, 0.3f };
2
bmargulies

コンパイル時に値がわかっている場合は、次を実行できます。

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

実行時に値が変数である場合、これを行う方法はありません。

1
fastcodejava

これは動作するはずですが、より遅く、間違っていると感じます:System.arraycopy(new float[]{...}, 0, values, 0, 3);

0

たとえば、失敗した文字に対して上記のすべてを試しましたが、うまくいきました>>ポインタを予約してから値を割り当てます

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

次のようなローカル変数を使用できます。

    float[] values = new float[3];
    float[] v = {0.1f, 0.2f, 0.3f};
    float[] values = v;
0
bou22
    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であるのを見てきたので、この方法でそれを行うことができました。この方法は、チャートとグラフを設計している場合に非常に便利です。 n番目の時間まで0.1ずつx値を増加させることができます。

または、何らかのグリッドを設計したい場合。

0
Genc Gashi