Java'da, sıralamak Aynı türdeki öğeleri içeren en önemli veri yapısıdır. Öğeleri bitişik bellek tahsisinde saklar. İki tür dizi vardır; statik dizi Ve dinamik dizi. Bu bölümde yalnızca şunlara odaklanacağız: Java'da statik dizi .
Statik Dizi
Statik anahtar kelimeyle bildirilen bir dizi, statik dizi olarak bilinir. Boyutu sabit olan derleme zamanında bellek ayırır. Statik diziyi değiştiremeyiz.
Bir dizinin kullanıcıdan gelen girdiye göre boyutlandırılmasını istiyorsak statik dizileri kullanamayız. Böyle bir durumda dinamik diziler, bir dizinin boyutunu çalışma zamanında belirlememize olanak tanır.
Statik Dizi Örneği
Örneğin int arr[10], 10 boyutunda bir dizi oluşturur. Bu, yalnızca 10 öğe ekleyebileceğimiz anlamına gelir; Dizinin boyutu sabit olduğundan 11. öğeyi ekleyemiyoruz.
int arr[] = { 1, 3, 4 }; // static integer array int* arr = new int[3]; // dynamic integer array
Statik Dizinin Avantajları
- Etkin yürütme süresine sahiptir.
- Statik ayırmanın ömrü, programın tüm çalışma süresidir.
Statik Dizinin Dezavantajları
- Gerekenden fazla statik veri alanı bildirilmesi durumunda alan israfı yaşanır.
- Gerekenden daha az statik alan bildirilmesi durumunda, çalışma süresi boyunca bu sabit boyutun genişletilmesi imkansız hale gelir.
Statik Dizi Bildirmek
Statik bir dizi bildirmenin sözdizimi şöyledir:
[]={,,.....};
Örneğin:
String[] suit = new String[] { 'Japan', 'India', 'Austria', 'Dubai' };
Ayrıca statik diziyi aşağıdaki gibi bildirebilir ve başlatabiliriz:
String[] suit = { 'Japan', 'India', 'Austria', 'Dubai' };
Statik dizi aynı zamanda Liste olarak da bildirilebilir. Örneğin:
List suit = Arrays.asList( 'Japan', 'India', 'Austria', 'Dubai' );
Statik Dizi Java Programı
StaticArrayExample.java
public class StaticArrayExample { private static String[] array; static { array = new String[2]; array[0] = 'Welcome to'; array[1] = 'Javatpoint'; } 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'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;>
Başka bir Java programına bakalım.
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;>
Statik Dizi ve Dinamik Dizi Arasındaki Fark
Aşağıdaki tabloda statik dizi ile dinamik dizi arasındaki temel farklar açıklanmaktadır.
Statik Dizi | Dinamik Dizi |
---|---|
Statik dizilere derleme zamanında bellek ayrılır. | Dinamik dizi çalışma zamanında bulunur. |
Statik dizinin boyutu sabittir. | Dinamik dizinin boyutu sabittir. |
Yığın bellek alanında bulunur. | Heap bellek alanında bulunur. |
int dizi[10]; //10 boyutlu dizi | int* dizi = yeni int[10]; |