logo

Javaの静的配列

Javaでは、 配列 同じタイプの要素を含む最も重要なデータ構造です。要素は連続したメモリ割り当てに格納されます。配列には 2 つのタイプがあります。 静的配列 そして 動的配列。 このセクションでは、次のことにのみ焦点を当てます。 Javaの静的配列

静的配列

static キーワードを使用して宣言された配列は、静的配列と呼ばれます。コンパイル時にサイズが固定されたメモリを割り当てます。静的配列を変更することはできません。

ユーザーからの入力に基づいて配列のサイズを変更したい場合、静的配列は使用できません。このような場合、動的配列を使用すると、実行時に配列のサイズを指定できます。

静的配列の例

たとえば、int arr[10] はサイズ 10 の配列を作成します。これは、10 個の要素のみを挿入できることを意味します。配列のサイズは固定されているため、11 番目の要素を追加することはできません。

 int arr[] = { 1, 3, 4 }; // static integer array int* arr = new int[3]; // dynamic integer array 

静的配列の利点

  • 実行時間は効率的です。
  • 静的割り当ての有効期間は、プログラムの実行時間全体です。

静的配列の欠点

  • 必要以上に多くの静的データ領域が宣言された場合、領域が無駄になります。
  • 必要な量よりも少ない静的領域が宣言されている場合、実行時にこの固定サイズを拡張することができなくなります。

静的配列の宣言

静的配列を宣言する構文は次のとおりです。

 []={,,.....}; 

例えば:

 String[] suit = new String[] { 'Japan', 'India', 'Austria', 'Dubai' }; 

次のように静的配列を宣言して初期化することもできます。

 String[] suit = { 'Japan', 'India', 'Austria', 'Dubai' }; 

静的配列はリストとして宣言することもできます。例えば:

 List suit = Arrays.asList( 'Japan', 'India', 'Austria', 'Dubai' ); 

静的配列 Java プログラム

StaticArrayExample.java

 public class StaticArrayExample { private static String[] array; static { array = new String[2]; array[0] = &apos;Welcome to&apos;; array[1] = &apos;Javatpoint&apos;; } public static void main(String args[]) { for(int i = 0; i <array.length; i++) { system.out.print(array[i] + ' '); } < pre> <p> <strong>Output:</strong> </p> <pre> Welcome to Javatpoint </pre> <p>Let&apos;s see another Java program.</p> <p> <strong>StaticArrayExample.java</strong> </p> <pre> public class StaticArrayExample2 { //creates a static array of integer type static Integer[] integerArray; static { integerArray = new Integer[] { new Integer(1), new Integer(2), new Integer(3), new Integer(4), new Integer(5)}; } public static void main(String args[]) { //loop iterate over static array for (int i = 0; i <integerarray.length; i++) { prints array elements system.out.println(integerarray[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 1 2 3 4 5 </pre> <h2>Difference Between Static Array and Dynamic Array</h2> <p>The following table describes the key differences between static array and dynamic array.</p> <table class="table"> <tr> <th>Static Array</th> <th>Dynamic Array</th> </tr> <tr> <td>Static arrays are allocated memory at compile time.</td> <td>Dynamic array is located at run-time.</td> </tr> <tr> <td>The size of static array is fixed.</td> <td>The size of dynamic array is fixed. </td> </tr> <tr> <td>It is located in stack memory space.</td> <td>It is located in heap memory space.</td> </tr> <tr> <td>int array[10]; //array of size 10</td> <td>int* array = new int[10];</td> </tr> </table> <hr></integerarray.length;></pre></array.length;>

別の Java プログラムを見てみましょう。

StaticArrayExample.java

 public class StaticArrayExample2 { //creates a static array of integer type static Integer[] integerArray; static { integerArray = new Integer[] { new Integer(1), new Integer(2), new Integer(3), new Integer(4), new Integer(5)}; } public static void main(String args[]) { //loop iterate over static array for (int i = 0; i <integerarray.length; i++) { prints array elements system.out.println(integerarray[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 1 2 3 4 5 </pre> <h2>Difference Between Static Array and Dynamic Array</h2> <p>The following table describes the key differences between static array and dynamic array.</p> <table class="table"> <tr> <th>Static Array</th> <th>Dynamic Array</th> </tr> <tr> <td>Static arrays are allocated memory at compile time.</td> <td>Dynamic array is located at run-time.</td> </tr> <tr> <td>The size of static array is fixed.</td> <td>The size of dynamic array is fixed. </td> </tr> <tr> <td>It is located in stack memory space.</td> <td>It is located in heap memory space.</td> </tr> <tr> <td>int array[10]; //array of size 10</td> <td>int* array = new int[10];</td> </tr> </table> <hr></integerarray.length;>

静的配列と動的配列の違い

次の表では、静的配列と動的配列の主な違いを説明します。

静的配列 ダイナミックアレイ
静的配列にはコンパイル時にメモリが割り当てられます。 動的配列は実行時に配置されます。
静的配列のサイズは固定です。 動的配列のサイズは固定です。
これはスタック メモリ空間に配置されます。 ヒープメモリ空間に配置されます。
int 配列[10]; // サイズ 10 の配列 int* 配列 = 新しい int[10];