2009-02-23 19 views
65

私はそれを正常に行う方法を知っていますが、あなたはa [0] = {0,0,0,0}のように記入することができます。あなたはどうやってそのようにしていますか?私はGoogleを試してみましたが、役に立たないものはありませんでした。Javaで配列を埋めるにはどうしたらいいですか?

+1

あなたが尋ねるべきである本当の問題は、この作品を作る方法である:[0] = someFunction(4、0);そのため、選択された「正しい」回答は役に立たない。 – HoldOffHunger

答えて

54

また、宣言の一部としてそれを行うことができます。

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

これは私が考えていたことです、ありがとう! – William

+10

int [] a =新しいint [4]は、0がデフォルト値なので同じことを達成します。 –

+3

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

15

Arrays.fill()。このメソッドは異なるデータ型に対してオーバーロードされ、指定された範囲のインデックスのみを満たすバリエーションが存在します。

229

Arrays.fillの方法を確認してください。

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

+1、私はArrays.fill()メソッドについて知らなかったので。私はいつもforループでやった。 :D – Spoike

+7

@GrantGalitz私は実際にそれについて確信していない、あなたは記事やsmtへのリンクがありますか? 'System'クラスとは異なり、' java.util.Arrays'はJavaによって実装されたクラスであり、ソースを見ると、通常のループと違いはありません**。 – Pacerier

+7

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

5

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

例えば、Stringの配列のいずれかによって宣言することができる。

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

またはいくつかObjectの配列:

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

プリミティブも同様にいずれかによって初期化することができます

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

Javaの配列に関するすべての詳細は、Chapter 10: ArraysThe Java Language Specifications, Third Editionに設定します。

2

Javaの配列要素は、作成時にデフォルト値に初期化されます。数字の場合、これは0に初期化されることを意味し、参照はnullであり、ブール値はfalseです。あなたがArrays.fill()を使用することができますか宣言

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

の一環として、いくつかのスクリプト言語のように算術級数で配列を埋めるために、Javaの近道はありません何か他のもので配列を埋めるために

9

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

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

sizevalueはあなたが繰り返しTOTたいと値が繰り返されているアイテムの数を生産する式です。 Javaで

Demo.

5
Arrays.fill(arrayName,value); 

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 
-2
int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
+5

ようこそ!この答えは、いくつかのコードを投げつけるのではなく、説明を加えることができれば改善されるでしょう。この7年前の質問ですでに提供されている他の回答よりも、これはなぜ好ましいでしょうか? – Mogsdad

関連する問題