Java - Diziler

Java bir veri yapısı sağlar, array, aynı türden öğelerin sabit boyutlu sıralı bir koleksiyonunu depolayan. Bir dizi, bir veri koleksiyonunu depolamak için kullanılır, ancak bir diziyi aynı türden değişkenlerin bir koleksiyonu olarak düşünmek genellikle daha kullanışlıdır.

Sayı0, sayı1, ... ve sayı99 gibi tek tek değişkenleri bildirmek yerine, sayılar gibi bir dizi değişkeni bildirir ve temsil etmek için sayılar [0], sayılar [1] ve ..., sayılar [99] kullanırsınız bireysel değişkenler.

Bu öğretici, dizi değişkenlerinin nasıl bildirileceğini, dizilerin nasıl oluşturulacağını ve dizinli değişkenler kullanılarak dizilerin nasıl işleneceğini açıklamaktadır.

Dizi Değişkenlerini Bildirme

Bir programda bir dizi kullanmak için, diziye başvurmak üzere bir değişken bildirmeniz ve değişkenin başvurabileceği dizi türünü belirtmeniz gerekir. İşte bir dizi değişkenini bildirmek için sözdizimi -

Sözdizimi

dataType[] arrayRefVar;   // preferred way.
or
dataType arrayRefVar[];  // works but not preferred way.

Note - Tarz dataType[] arrayRefVartercih edilir. StildataType arrayRefVar[] C / C ++ dilinden gelir ve C / C ++ programcılarını barındırmak için Java'da benimsenmiştir.

Misal

Aşağıdaki kod parçacıkları bu sözdiziminin örnekleridir -

double[] myList;   // preferred way.
or
double myList[];   // works but not preferred way.

Diziler Oluşturma

New operatörü aşağıdaki sözdizimi ile kullanarak bir dizi oluşturabilirsiniz -

Sözdizimi

arrayRefVar = new dataType[arraySize];

Yukarıdaki ifade iki şey yapar -

  • New dataType [arraySize] kullanarak bir dizi oluşturur.

  • Yeni oluşturulan dizinin referansını arrayRefVar değişkenine atar.

Bir dizi değişkeni bildirmek, bir dizi oluşturmak ve dizi referansını değişkene atamak, aşağıda gösterildiği gibi tek bir ifadede birleştirilebilir -

dataType[] arrayRefVar = new dataType[arraySize];

Alternatif olarak aşağıdaki gibi diziler oluşturabilirsiniz -

dataType[] arrayRefVar = {value0, value1, ..., valuek};

Dizi elemanlarına, index. Dizi endeksleri 0 tabanlıdır; yani, 0'dan başlarlararrayRefVar.length-1.

Misal

Aşağıdaki ifade, bir dizi değişkeni bildirir, myList, 10 öğelik çift tipli bir dizi oluşturur ve referansını myList'e atar -

double[] myList = new double[10];

Aşağıdaki resim myList dizisini temsil eder. Burada myList on çift değer içerir ve endeksler 0'dan 9'a kadardır.

Dizileri İşleme

Dizi öğelerini işlerken genellikle ikisinden birini kullanırız for döngü veya foreach döngü çünkü bir dizideki tüm öğeler aynı türdedir ve dizinin boyutu bilinir.

Misal

İşte dizilerin nasıl oluşturulacağını, başlatılacağını ve işleneceğini gösteren eksiksiz bir örnek:

public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (int i = 0; i < myList.length; i++) {
         System.out.println(myList[i] + " ");
      }
     
      // Summing all elements
      double total = 0;
      for (int i = 0; i < myList.length; i++) {
         total += myList[i];
      }
      System.out.println("Total is " + total);
      
      // Finding the largest element
      double max = myList[0];
      for (int i = 1; i < myList.length; i++) {
         if (myList[i] > max) max = myList[i];
      }
      System.out.println("Max is " + max);  
   }
}

Bu, aşağıdaki sonucu verecektir -

Çıktı

1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5

Foreach Döngüleri

JDK 1.5, foreach döngüsü olarak bilinen veya döngü için geliştirilmiş yeni bir for döngüsü sunmuştur; bu, bir dizin değişkeni kullanmadan dizinin tamamını sırayla geçmenizi sağlar.

Misal

Aşağıdaki kod, myList dizisindeki tüm öğeleri görüntüler -

public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (double element: myList) {
         System.out.println(element);
      }
   }
}

Bu, aşağıdaki sonucu verecektir -

Çıktı

1.9
2.9
3.4
3.5

Dizileri Yöntemlere Geçirme

İlkel tür değerlerini yöntemlere geçirebildiğiniz gibi, dizileri de yöntemlere geçirebilirsiniz. Örneğin, aşağıdaki yöntem öğeleri birint dizi -

Misal

public static void printArray(int[] array) {
   for (int i = 0; i < array.length; i++) {
      System.out.print(array[i] + " ");
   }
}

Bir dizi geçirerek onu çağırabilirsiniz. Örneğin aşağıdaki ifade, 3, 1, 2, 6, 4 ve 2'yi görüntülemek için printArray yöntemini çağırır -

Misal

printArray(new int[]{3, 1, 2, 6, 4, 2});

Bir Yöntemden Dizi Döndürme

Bir yöntem ayrıca bir dizi döndürebilir. Örneğin, aşağıdaki yöntem, başka bir dizinin tersine çevrilmesi olan bir dizi döndürür -

Misal

public static int[] reverse(int[] list) {
   int[] result = new int[list.length];

   for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
      result[j] = list[i];
   }
   return result;
}

Arrays Sınıfı

Java.util.Arrays sınıfı, dizileri sıralamak ve aramak, dizileri karşılaştırmak ve dizi öğelerini doldurmak için çeşitli statik yöntemler içerir. Bu yöntemler, tüm ilkel türler için aşırı yüklenmiştir.

Sr.No. Yöntem ve Açıklama
1

public static int binarySearch(Object[] a, Object key)

İkili arama algoritmasını kullanarak belirtilen değer için belirtilen Object dizisini (Byte, Int, double, vb.) Arar. Bu çağrıyı yapmadan önce dizi sıralanmalıdır. Bu, listede yer alıyorsa arama anahtarının dizinini döndürür; aksi takdirde (- (ekleme noktası + 1)) döndürür.

2

public static boolean equals(long[] a, long[] a2)

Belirtilen iki uzun dizi birbirine eşitse doğru döndürür. Her iki dizi de aynı sayıda öğe içeriyorsa ve iki dizideki karşılık gelen tüm öğe çiftleri eşitse, iki dizi eşit kabul edilir. İki dizi eşitse bu doğru döndürür. Aynı yöntem diğer tüm ilkel veri türleri (Byte, short, Int, vb.) Tarafından kullanılabilir.

3

public static void fill(int[] a, int val)

Belirtilen int değerini, belirtilen ints dizisinin her öğesine atar. Aynı yöntem, diğer tüm ilkel veri türleri (Byte, short, Int, vb.) Tarafından kullanılabilir.

4

public static void sort(Object[] a)

Belirtilen nesne dizisini, öğelerinin doğal sırasına göre artan bir düzende sıralar. Aynı yöntem, diğer tüm ilkel veri türleri (Byte, short, Int, vb.) Tarafından kullanılabilir.