Javaで配列を埋めるにはどうすればよいですか?


83

私はそれを普通に行う方法を知っていますが、あなたがa [0] = {0,0,0,0}のように記入できることを誓うことができます。どのようにそれをそのようにしますか?私はグーグルを試しましたが、何も役に立ちませんでした。


1
あなたが尋ねるべき本当の質問は、これをどのように機能させるかです:a [0] = someFunction(4、0);。そのため、選択した「正解」は役に立ちません。
holdOffHunger 2016

回答:


63

宣言の一部としてそれを行うこともできます:

int[] a = new int[] {0, 0, 0, 0};

11
0がデフォルト値であるため、int [] a = new int [4]は同じことを実行します。
Zach Scrivena 2009

5
またはint [] a = {0、0、0、0}; 。定数が宣言ですぐに使用されない場合にのみ、新しいint []が必要になります。
starblue 2009

4
これは、大きな配列がある場合には役に立ちません。@cdmckayの答えはより良いです。
フェリペLeão

「コードをコピー/貼り付けしていることに気付いた場合は、何か間違ったことをしている」という古くからのプログラミング規則を忘れないでください。ゼロの数、またはデフォルト値は、ここにコピーして貼り付けられています。
holdOffHunger 2016

262

Arrays.fillメソッドを確認してください。

int[] array = new int[4];
Arrays.fill(array, 0);

21
Arrays.fill()メソッドについて知らなかったので+1。私はいつもforループでそれをしました。:D
Spoike 2009

8
@GrantGalitz私は実際にそれについて確信していません、あなたは記事またはsmtへのリンクを持っていますか?Systemクラスとjava.util.Arraysは異なり、はJavaによって実装されたクラスであり、ソースを調べると、通常のループと同じであることがわかります。
ペースリエ2011年

7
intの配列は0で初期化されるため、上記の例では2行目は必要ありません。
Patrick Brinich-Langlois 2013

6
@ PatrickBrinich-Langlois:ゼロにするというあなたの意図を示すためにそれでも価値があるかもしれません。
cdmckay 2014


16

Java-8では、を使用IntStreamして、繰り返したい数値のストリームを生成し、それを配列に変換できます。このアプローチにより、初期化子での使用に適した式が生成されます。

int[] data = IntStream.generate(() -> value).limit(size).toArray();

上記の、sizeそしてvalueあなたはTOTを繰り返し、値が繰り返されたいアイテムの数を生産する表現があります。

デモ。


10
Arrays.fill(arrayName,value);

Javaで

int arrnum[] ={5,6,9,2,10};
for(int i=0;i<arrnum.length;i++){
  System.out.println(arrnum[i]+" ");
}
Arrays.fill(arrnum,0);
for(int i=0;i<arrnum.length;i++){
  System.out.println(arrnum[i]+" ");
}

出力

5 6 9 2 10
0 0 0 0 0

5

配列は、new Object {}構文を使用して初期化できます。

たとえば、の配列は次のStringいずれかで宣言できます。

String[] s = new String[] {"One", "Two", "Three"};
String[] s2 = {"One", "Two", "Three"};

プリミティブは、次のいずれかの方法で同様に初期化できます。

int[] i = new int[] {1, 2, 3};
int[] i2 = {1, 2, 3};

またはいくつかの配列Object

Point[] p = new Point[] {new Point(1, 1), new Point(2, 2)};

Javaでの配列に関するすべての詳細がで書き出される第10章:配列のJava言語仕様、第3版


2

Javaの配列要素は、作成時にデフォルト値に初期化されます。数値の場合、これは0に初期化されることを意味し、参照の場合はnullであり、ブール値の場合はfalseです。

配列を他のもので埋めるには、Arrays.fill()を使用するか、宣言の一部として使用できます

int[] a = new int[] {0, 0, 0, 0};

一部のスクリプト言語のように、配列を等差数列で埋めるためのショートカットはJavaにはありません。


-3
int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

10
サイトへようこそ!この答えは、単にコードを削除するのではなく、説明を追加できれば改善されます。この7歳の質問ですでに提供されている他の回答よりも、これが好ましいのはなぜですか?
Mogsdad 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.