私はこのように配列データを初期化しています:
public class Array {
int data[] = new int[10];
/** Creates a new instance of Array */
public Array() {
data[10] = {10,20,30,40,50,60,71,80,90,91};
}
}
NetBeansはその行にエラーを指摘します
data[10] = {10,20,30,40,50,60,71,80,90,91};
どうすれば問題を解決できますか?
data[10] = {10,20,30,40,50,60,71,80,90,91};
上記は正しくありません(構文エラー)。つまり、要素を1つだけ保持できるdata[10]
に配列を代入しているということです。
配列を初期化したい場合は、 Array Initializer を使用してみてください。
int[] data = {10,20,30,40,50,60,71,80,90,91};
// or
int[] data;
data = new int[] {10,20,30,40,50,60,71,80,90,91};
2つの宣言の違いに注目してください。宣言された変数に新しい配列を代入するときは、new
を使用しなければなりません。
構文を修正しても、data[10]
へのアクセスはまだ正しくありません(Javaの配列のインデックスは0から始まるため、data[0]
にアクセスできるのはdata[9]
のみです)。 data[10]
にアクセスすると ArrayIndexOutOfBoundsException がスローされます。
data = new int[] {10,20,30,40,50,60,71,80,90,91 };
を試す
サイズが10の配列を作成すると、0から9までの10個のスロットが割り当てられます。
public class Array {
int[] data = new int[10];
/** Creates a new instance of an int Array */
public Array() {
for(int i = 0; i < data.length; i++) {
data[i] = i*10;
}
}
}
できるよ:
int[] data = {10,20,30,40,50,60,71,80,90,91};
構文
Datatype[] variable = new Datatype[] { value1,value2.... }
Datatype variable[] = new Datatype[] { value1,value2.... }
例:
int [] points = new int[]{ 1,2,3,4 };
オフィシャルではないWebサイトはOracleのWebサイトから学ぶのではなく
リンクは続きます: ここをクリック
*初期化と完全な記述を含む宣言を見つけることができます*
int n; // size of array here 10
int[] a = new int[n];
for (int i = 0; i < a.length; i++)
{
a[i] = Integer.parseInt(s.nextLine()); // using Scanner class
}
入力 :10 //配列サイズ10 20 30 40 50 60 71 80 90 91
データの表示:
for (int i = 0; i < a.length; i++)
{
System.out.println(a[i] + " ");
}
出力: 10 20 30 40 50 60 71 80 90 91
そのような配列を初期化することはできません。他の人が提案したことに加えて、あなたはすることができます:
data[0] = 10;
data[1] = 20;
...
data[9] = 91;
コンストラクタで配列を初期化したい場合は、のような配列初期化子を使用することはできません。
data= {10,20,30,40,50,60,71,80,90,91};
に変更するだけです
data = new int[] {10,20,30,40,50,60,71,80,90,91};
サイズをdata[10] = new int[] { 10,...,91}
で指定する必要はありません。プロパティ/フィールドをint[] data;
で宣言し、上記のように初期化するだけです。コードの修正バージョンは次のようになります。
public class Array {
int[] data;
public Array() {
data = new int[] {10,20,30,40,50,60,71,80,90,91};
}
}
ご覧のとおり、括弧は空です。初期化とそのサイズは中括弧の間の要素の数で指定されるため、大括弧の間のサイズを指定する必要はありません。
配列の10番目の要素を配列tryに設定しようとしています
data = new int[] {10,20,30,40,50,60,71,80,90,91};
FTFY
配列変数の宣言
プログラムで配列を使用するには、その配列を参照する変数を宣言し、その変数が参照できる配列の型を指定する必要があります。これが配列変数を宣言するための構文です -
構文
dataType[] arrayRefVar; // preferred way.
or
dataType arrayRefVar[]; // works but not preferred way.
注 - スタイルdataType [] arrayRefVarが推奨されます。スタイルdataType arrayRefVar []はC/C++言語に由来し、C/C++プログラマーを収容するためにJavaで採用されました。
例 次のコードスニペットは、この構文の例です -
double[] myList; // preferred way.
or
double myList[]; // works but not preferred way.
配列を作成する
あなたは次の構文でnew演算子を使用して配列を作成することができます -
構文
arrayRefVar = new dataType[arraySize];
上記のステートメントは2つのことを行います -
新しいdataType [arraySize]を使って配列を作成します。
新しく作成された配列の参照を変数arrayRefVarに割り当てます。
以下に示すように、配列変数の宣言、配列の作成、および変数への配列の参照の割り当てを1つのステートメントにまとめることができます -
dataType[] arrayRefVar = new dataType[arraySize];
あるいは、以下のように配列を作成することができます -
dataType[] arrayRefVar = {value0, value1, ..., valuek};
配列要素はインデックスを介してアクセスされます。配列インデックスは0から始まります。つまり、0からarrayRefVar.length-1までです。
例
次の文は、配列変数myListを宣言し、double型の10要素の配列を作成し、その参照をmyListに代入します -
double[] myList = new double[10];
二次元配列も同様に初期化することができます。
例 - 構文
dataType[][] arrayRefVar = new dataType[arraySize][arraySize];
Ex- int[][] arr=new int[5][5];
多分これはうまくいくでしょう:
public class Array {
int data[] = new int[10];
/* Creates a new instance of Array */
public Array() {
data= {10,20,30,40,50,60,71,80,90,91};
}
}