java array declare
この詳細なチュートリアルでは、簡単なコード例を使用して、Javaで値を使用して新しい配列を宣言、作成、および初期化するさまざまな方法について説明します。
前のチュートリアルでは、Javaの配列の基本と、このチュートリアルシリーズで詳細に学習する配列に関連するさまざまな概念について説明しました。
配列の最初のそして最も重要なステップは、それらを作成することです。配列に格納する要素のタイプと数に注意する必要があります。配列を宣言したら、いくつかの初期値を指定して配列を初期化することをお勧めします。これを行うにはさまざまな方法があります。
したがって、このチュートリアルでは、他の概念に進む前に、配列の作成と初期化に焦点を当てます。
学習内容:
Javaで配列を宣言する方法は?
Javaでは、1次元配列は次のいずれかの方法で宣言されます。
data_type() array_name; {or} data_type array_name(); {or} data_type ()array_name;
ここで、「data_type」は、配列が保持するデータのタイプを指定します。 「data_type」は、プリミティブデータ型または任意の派生型にすることができます。
例えば、 配列 myarray 整数型は次のように宣言されます。
int () myarray;
または
int () myarray;
または
int myarray ();
これは、配列myarrayがデータ型intの要素を保持することを意味します。
Javaの配列は動的に割り当てられるため、宣言で配列の次元やサイズを指定しないことに注意してください。上記の宣言は、整数型の値を格納するint型の配列変数「myarray」があることをコンパイラに通知します。
Windows10用の最高の無料システムクリーナー
コンパイラは、配列に格納されているサイズや実際の値を認識していません。配列を初期化した後でのみわかります。
Java配列のインスタンス化と初期化
前のセクションですでに配列を宣言しました。しかし、これは単なる参考資料です。上で宣言された配列変数を使用するには、それをインスタンス化してから、その値を指定する必要があります。配列は「new」を使用してインスタンス化されます。
インスタンス化の一般的な構文は次のとおりです。
array_name = new data_type (size);
上記のステートメントで、array_nameは、インスタンス化される配列の名前です。
data_type=> type of elements the array is going to store size=> the number of elements that will be stored in array
したがって、配列でnewを使用すると、実際には配列にデータ型と要素数が割り当てられます。
したがって、上記で宣言された配列myarrayは、次のようにインスタンス化できます。
myarray = new int(10)
したがって、Javaで配列を作成するには、以下に示す2つのステップが必要です。
int() myarray; //declaration myarray = new int(10); //instantiation
配列が作成されたら、次のように値で初期化できます。
myarray(0) = 1; myarray(1) = 3; ….and so on until all elements are initialized.
上記の角括弧内の式は、配列のインデックスと呼ばれます。配列のインデックスは、要素の実際の値にアクセスするために使用されます。つまり、上記の10個のint要素の配列myarrayには、0から9までの番号が付けられたインデックスがあります。上記。
配列インデックスは常に0から始まることに注意してください。または、後で説明するループを使用して初期化を行うこともできます。
以下に示すように、配列リテラルを使用して、宣言自体の間に配列を初期化することもできます。
int() myarray = {1,3,5,7};
上記のステートメントでは、配列の長さは要素の数によって決まります。また、ご覧のとおり、「新規」を使用する必要はありません。さらに重要なことに、配列の宣言、インスタンス化、および初期化は1つのステートメントで実行されます。
以下に、配列の宣言と初期化の簡単なプログラミング例を示します。
public class Main { public static void main(String() args) { int() myarray; //declaration myarray = new int(5); //instantiation myarray(0) = 10; //initialization System.out.println('myarray(0) = ' + myarray(0)); //accessing and printing array elements System.out.println('myarray(1) = ' + myarray(1)); int () oddArray = {1,3,5,7}; //initialization with array literal System.out.println('oddArray(0) = ' + oddArray(0)); System.out.println('oddArray(1) = ' + oddArray(1)); System.out.println('oddArray(2) = ' + oddArray(2)); System.out.println('oddArray(3) = ' + oddArray(3)); } }
出力:
Windows10で.epsファイルを開く方法
このプログラムは、配列宣言とそのインスタンス化、および初期化を示しました。 oを初期化しただけなので注意してくださいthmyarrayの値、出力される他の値myarray (1)のデフォルト値は、0です。
2番目の配列は、配列リテラル変数を示しています。配列を初期化しない場合でも、Javaコンパイラはエラーを出しません。通常、配列が初期化されていない場合、コンパイラは要素のデータ型に従って配列の各要素にデフォルト値を割り当てます。
次のプログラムを使用して、これらのデフォルト値を示します。
class Main { public static void main(String() args) { System.out.println('=======Default Values======'); System.out.print('String Array:'); String() array_str = new String(5); //declaration and instantiation for (String str : array_str) //assumes default values System.out.print(str + ' '); System.out.println('
'); System.out.print('Integer array:'); //array only instantiated not initialized int() array_num = new int(5); for (intnum : array_num) System.out.print(num + ' '); System.out.println('
'); System.out.print('Double array:'); //array only instantiated not initialized doublearray_double() = new double(5); for (double dnum : array_double) System.out.print(dnum + ' '); System.out.println('
'); System.out.print('Boolean array:'); //array only instantiated not initialized booleanarray_bool() = new boolean(5); for (booleanbval : array_bool) System.out.print(bval + ' '); System.out.println('
'); } }
出力:
上記のプログラムでは、それらを宣言してインスタンス化しました。それらをどの値にも初期化していません。したがって、これらの配列の内容を表示すると、配列のデータ型に応じて、要素のデフォルト値が異なります。
上記のように、文字列配列のデフォルトは「null」、整数値は0、double値のデフォルトは0.0です。ブール値のデフォルト値はfalseに設定されています。
配列要素の初期化とアクセス
#1)Forループの使用
上記のプログラムは、初期化に配列リテラルを使用し、他の配列要素は個別に初期化されます。 forループを使用して配列要素を初期化することもできます。
配列リテラルを使用して上記の配列を変換し、以下のプログラムのforループを使用して初期化しました。
public class Main { public static void main(String() args) { int() oddArray; //declaration oddArray = new int(5); //instantiation for(int i=0;i<5;i++){ oddArray(i) = i+1; //initialization using for loop } System.out.println('oddArray(0) = ' + oddArray(0)); System.out.println('oddArray(1) = ' + oddArray(1)); System.out.println('oddArray(2) = ' + oddArray(2)); System.out.println('oddArray(3) = ' + oddArray(3)); System.out.println('oddArray(4) = ' + oddArray(4)); } }
出力:
ここでは、ご覧のとおり、forループを使用して配列を初期化しました。配列の各要素「i」は、値= i +1で初期化されます。上記のメソッドを使用して配列を初期化する以外に、「java.util」パッケージの「Arrays」クラスのいくつかのメソッドを使用して、配列の初期値を提供することもできます。
これらの方法のいくつかについて、以下で説明します。
#2)Arrays.fill()の使用
「Arrays」クラスのfill()メソッドを使用して、配列を初期化できます。このメソッドを使用して配列を初期化すると、配列はすべてのインデックスで同じ値で埋められます。
以下にプログラミング例を示します。
import java.util.*; public class Main { public static void main(String() args) { int() oddArray; oddArray = new int(5); //fill the array with value 30 Arrays.fill(oddArray, 30); System.out.println('Array Elements initialised with Arrays.fill:'); for(int i=0;i<5;i++) System.out.println('oddArray(' + i +') = ' + oddArray(i)); } }
出力:
モデムはどのように見えますか
上記のプログラムでは、配列に入力する値として30を指定しています。出力は、配列内のすべての要素の値が30であることを示しています。
#3)Arrays.copyOf()の使用
メソッド「copyOf()」を使用して、ソース配列を使用し、その値を新しい配列にコピーします。コピーする値の数を指定すると、配列の残りの要素にデフォルト値が設定されます。
次のプログラムを確認してください。
import java.util.*; public class Main { public static void main(String() args) { int evenArray() = { 2,4,6,8,10 }; //copy contents of evenArray to copyof_Array int() copyof_Array = Arrays.copyOf(evenArray,5); System.out.println('Array Elements initialised with Arrays.copyOf:'); //print the array elements for(int i=0;i<5;i++) System.out.println('copyof_Array(' + i +') = ' + copyof_Array(i)); } }
出力:
このプログラムでは、「evenArray」という名前のソース配列を使用します。 copyOfメソッドを使用して、evenArrayのすべての要素を新しい配列にコピーしました。出力には、evenArrayと同じ新しい配列の内容が表示されます。
上記の2つのメソッドとは別に、ArraysクラスのsetAll()メソッドやArrayUtilsのclone()メソッドなど、配列の初期化に使用できるメソッドが他にもあることを説明しました。これらのメソッドについては、このチュートリアルシリーズの後半の各トピックで取り上げます。
よくある質問
Q#1)サイズなしで配列を宣言できますか?
回答: いいえ。サイズを指定せずに配列を宣言することはできません。それを実行したい場合は、本質的に動的なArrayListを使用できます。
Q#2)配列サイズはJavaで固定されていますか?
回答: はい。配列はJavaでは静的であり、指定されたサイズで配列を宣言します。このサイズを指定すると、再度変更することはできません。
Q#3)配列の初期化中に常にnewを使用する必要がありますか?
回答: いいえ。配列は、newを使用するか、中括弧で囲まれたコンマ区切りの値を割り当てることによって初期化できます。
したがって、以下に示すように、配列リテラルを使用して配列を初期化する場合。新しいものを使用する必要はありません。
int() myarray = {1,2,3,4,5};
提供される要素の数によって、配列のサイズが決まります。
Q#4)Javaアレイはシリアライズ可能ですか?
回答: はい。内部的には、Javaの配列はシリアライズ可能なインターフェースを実装しています。
Q#5)配列プリミティブのデータ型ですか?
回答: いいえ。実際、配列はデータ型ではありません。配列は、特定のデータ型の要素を連続したメモリ位置に保持するコンテナオブジェクトです。
結論
これは、Javaでの配列の作成と初期化をまとめたものです。配列が作成され、いくつかの値に初期化されたら、それらを出力する必要があります。配列要素を印刷するには、配列全体をトラバースして要素を印刷する必要があります。
次のチュートリアルでは、配列要素を印刷する方法のいくつかを調べます。