logo

Tablica statyczna w Javie

na Jawie, szyk to najważniejsza struktura danych zawierająca elementy tego samego typu. Przechowuje elementy w ciągłej alokacji pamięci. Istnieją dwa typy tablic, tj. tablica statyczna I tablica dynamiczna. W tej sekcji skupimy się tylko na tablica statyczna w Javie .

Tablica statyczna

Tablica zadeklarowana za pomocą słowa kluczowego static nazywana jest tablicą statyczną. Przydziela pamięć w czasie kompilacji, której rozmiar jest stały. Nie możemy zmienić tablicy statycznej.

Jeśli chcemy, aby rozmiar tablicy był dobierany na podstawie danych wejściowych użytkownika, nie możemy używać tablic statycznych. W takim przypadku tablice dynamiczne pozwalają nam określić rozmiar tablicy w czasie wykonywania.

Przykład tablicy statycznej

Na przykład int arr[10] tworzy tablicę o rozmiarze 10. Oznacza to, że możemy wstawić tylko 10 elementów; nie możemy dodać jedenastego elementu, ponieważ rozmiar tablicy jest stały.

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

Zalety tablicy statycznej

  • Ma efektywny czas realizacji.
  • Czas życia alokacji statycznej to cały czas działania programu.

Wady tablicy statycznej

  • W przypadku zadeklarowania większej ilości statycznego miejsca na dane niż potrzeba, dochodzi do marnowania miejsca.
  • W przypadku zadeklarowania mniejszej przestrzeni statycznej niż jest to potrzebne, rozszerzenie tego stałego rozmiaru w czasie wykonywania stanie się niemożliwe.

Deklarowanie tablicy statycznej

Składnia deklarowania tablicy statycznej jest następująca:

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

Na przykład:

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

Możemy również zadeklarować i zainicjować tablicę statyczną w następujący sposób:

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

Tablicę statyczną można również zadeklarować jako listę. Na przykład:

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

Program Java z tablicą statyczną

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;>

Zobaczmy inny program 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;>

Różnica między tablicą statyczną a tablicą dynamiczną

W poniższej tabeli opisano kluczowe różnice między tablicą statyczną a tablicą dynamiczną.

Tablica statyczna Tablica dynamiczna
Tablice statyczne są przydzielane pamięci w czasie kompilacji. Tablica dynamiczna jest zlokalizowana w czasie wykonywania.
Rozmiar tablicy statycznej jest stały. Rozmiar tablicy dynamicznej jest stały.
Znajduje się w przestrzeni pamięci stosu. Znajduje się w przestrzeni pamięci sterty.
int tablica[10]; //tablica o rozmiarze 10 int* tablica = nowa int[10];