Diziler Java

โšก Akฤฑllฤฑ ร–zet

Diziler Java Bunlar, tek bir veri tรผrรผndeki รถฤŸeleri bitiลŸik bellekte depolayan, sabit boyutlu, indeks tabanlฤฑ kapsayฤฑcฤฑlardฤฑr; sabit zamanlฤฑ eriลŸim, yerleลŸik sฤฑnฤฑr kontrolรผ ve uzunluk alanฤฑ saฤŸlayarak รงoฤŸu standart kรผtรผphane koleksiyonunun temelini oluลŸtururlar.

  • ???? Sabit boyut: Bir dizi, tek bir tรผrden belirli sayฤฑda รถฤŸe iรงerir.
  • ๐Ÿ”ข Sฤฑfฤฑr tabanlฤฑ indeks: Elemanlar 0'dan uzunluk eksi bire kadar uzanฤฑr.
  • ๐Ÿงฉ ฤฐki tip: Java Tek boyutlu ve รงok boyutlu dizilere sahiptir.
  • ๏ธ รœรง adฤฑm: Her dizi ลŸu ลŸekilde tanฤฑmlanฤฑr ve oluลŸturulur: newve baลŸlatฤฑldฤฑ.
  • ๐Ÿ›ก๏ธ Sฤฑnฤฑr kontrolรผ: JVM hata veriyor ArrayIndexOutOfBoundsException son slotun รถtesinde.
  • โ†ฉ๏ธ Referans yoluyla: Bir metot iรงinde yapฤฑlan รถฤŸe deฤŸiลŸiklikleri, รงaฤŸฤฑran metot iรงin kalฤฑcฤฑ olur.
  • ๐Ÿ“ Uzunluk alanฤฑ: Her dizi aรงฤฑฤŸa รงฤฑkarฤฑr length Gรผvenli yineleme iรงin.

Diziler Java

Nedir Java Sฤฑralamak?

A Java dizi Sabit boyutlu bir yapฤฑdฤฑr ve tek bir veri tรผrรผnรผn elemanlarฤฑnฤฑ bitiลŸik bellekte depolar. Her elemana sฤฑfฤฑr tabanlฤฑ bir indeksle ulaลŸฤฑlฤฑr, bu nedenle ilki ... konumundadฤฑr. 0 ve sonuncusu length - 1Diziler, ลŸunlardan miras alฤฑr: Object uygulamak Serializable hem de Cloneableve temel veri tiplerini veya nesne referanslarฤฑnฤฑ tutabilir.

Diziler, uzun numaralandฤฑrฤฑlmฤฑลŸ deฤŸiลŸken dizilerinin yerini alฤฑr. Altฤฑ baฤŸฤฑmsฤฑz tamsayฤฑyฤฑ ele alalฤฑm:

x0 = 0;
x1 = 1;
x2 = 2;
x3 = 3;
x4 = 4;
x5 = 5;

Aynฤฑ altฤฑ deฤŸer, altฤฑ elemanlฤฑ tek bir dizide yer almaktadฤฑr:

x[0] = 0;
x[1] = 1;
x[2] = 2;
x[3] = 3;
x[4] = 4;
x[5] = 5;

A dรถngรผ DeฤŸiลŸken, parantez iรงindeki dizini belirleyebilir, bรถylece altฤฑ kopyalama iลŸlemi yerine รผรง satฤฑrda her รถฤŸe iลŸlenir:

for (int count = 0; count < 5; count++) {
    System.out.println(x[count]);
}

Dizi Tรผrleri Java

Java Diziler iki ลŸekilde karลŸฤฑmฤฑza รงฤฑkar:

  1. Tek boyutlu dizi: ร–ฤŸelerin dรผz bir listesi.
  2. ร‡ok boyutlu dizi: Izgaralar ve matrisler iรงin kullanฤฑlan, iรง iรงe geรงmiลŸ dizilerden oluลŸan bir yapฤฑ.

Dizi DeฤŸiลŸkenleri: Tanฤฑmlama, OluลŸturma ve BaลŸlatma

Dizi kullanmak bir รผรง aลŸamalฤฑ iลŸlem: bildirmek, oluลŸturmak newArdฤฑndan baลŸlatฤฑn.

1) Diziyi tanฤฑmlayฤฑn

Sรถzdizimi:

<elementType>[] <arrayName>;

or (Eski C stili biรงim, hala geรงerli):

<elementType> <arrayName>[];

ร–rnek:

int[] intArray;   // canonical form: brackets on the type
int intArray2[];  // legacy C-style form, discouraged in new code

2) Diziyi OluลŸturun

Sรถzdizimi:

arrayName = new dataType[size];

ร–rnek:

intArray = new int[10]; // defines that intArray will store 10 integer values

Beyan ve inลŸaat bir arada:

int[] intArray = new int[10];

3) Diziyi BaลŸlatฤฑn

intArray[0] = 1; // assigns 1 to the first element (index 0)
intArray[1] = 2; // assigns 2 to the second element (index 1)

Tek adฤฑmda tanฤฑmlayฤฑn ve baลŸlatฤฑn. Dizi sabiti kullanarak:

int[] intArray = {1, 2, 3, 4};
// initialises an integer array of length 4 where the first element is 1,
// the second element is 2, and so on.

ฤฐlk Dizi Programฤฑ Java

) 1 Adฤฑm AลŸaฤŸฤฑdaki kodu bir dรผzenleyiciye kopyalayฤฑn:

class ArrayDemo {
    public static void main(String args[]) {
        int array[] = new int[7];

        for (int count = 0; count < 7; count++) {
            array[count] = count + 1;
        }

        for (int count = 0; count < 7; count++) {
            System.out.println("array[" + count + "] = " + array[count]);
        }

        // System.out.println("Length of Array  =  " + array.length);
        // array[8] = 10;
    }
}

) 2 Adฤฑm Kodu kaydedin, derleyin ve รงalฤฑลŸtฤฑrฤฑn. ร‡ฤฑktฤฑyฤฑ gรถzlemleyin.

Beklenen รงฤฑktฤฑ:

array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
array[5] = 6
array[6] = 7

) 3 Adฤฑm If x Bu bir dizi referansฤฑdฤฑr. x.length Yuva sayฤฑsฤฑnฤฑ dรถndรผrรผr. ฤฐlk yorum satฤฑrฤฑndaki yorumu kaldฤฑrฤฑn ve tekrar รงalฤฑลŸtฤฑrฤฑn:

Length of Array  =  7

) 4 Adฤฑm C'den farklฤฑ olarak, Java Her dizi eriลŸiminde sฤฑnฤฑr kontrolรผ yapar. ฤฐkinci yorum satฤฑrฤฑndaki yorumu kaldฤฑrฤฑn ve tekrar รงalฤฑลŸtฤฑrฤฑn:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
        at ArrayDemo.main(ArrayDemo.java:11)
Command exited with non-zero status 1

) 5 Adฤฑm JVM hata veriyor ArrayIndexOutOfBoundsExceptionC dilinde aynฤฑ eriลŸim, baลŸarฤฑsฤฑz olmak yerine bitiลŸik bellekten anlamsฤฑz veriler dรถndรผrรผrdรผ.

Java Dizi: Referansla Geรงirme

Diziler metotlara referans yoluyla iletilir. Metot, referansฤฑn bir kopyasฤฑnฤฑ alฤฑr, bu nedenle metot iรงinde yapฤฑlan eleman deฤŸiลŸiklikleri รงaฤŸฤฑran tarafฤฑndan gรถrรผlebilir.

ร–rnek: Diziler referans yoluyla aktarฤฑlฤฑr.

) 1 Adฤฑm AลŸaฤŸฤฑdaki kodu bir dรผzenleyiciye kopyalayฤฑn:

class ArrayDemo {
    public static void passByReference(String a[]) {
        a[0] = "Changed";
    }

    public static void main(String args[]) {
        String[] b = {"Apple", "Mango", "Orange"};
        System.out.println("Before Function Call    " + b[0]);
        ArrayDemo.passByReference(b);
        System.out.println("After Function Call    " + b[0]);
    }
}

) 2 Adฤฑm Kodu kaydedin, derleyin ve รงalฤฑลŸtฤฑrฤฑn. ร‡ฤฑktฤฑyฤฑ gรถzlemleyin.

Beklenen รงฤฑktฤฑ:

Before Function Call    Apple
After Function Call    Changed

ร‡ok Boyutlu Dizilerde Java

ร‡ok boyutlu diziler, dizilerin dizileridir. Her boyut iรงin ayrฤฑ bir kรถลŸeli parantez kรผmesi ekleyin. Dรถrt satฤฑr ve beลŸ sรผtundan oluลŸan 2 boyutlu bir tamsayฤฑ tablosu oluลŸturmak iรงin:

int[][] twoD = new int[4][5];

ร–ncelikle yalnฤฑzca ilk (en soldaki) boyutu belirlemeniz yeterlidir. Kalan boyutlar ayrฤฑ ayrฤฑ tahsis edilebilir ve her satฤฑrฤฑn kendi uzunluฤŸu olabilir. Java 2 boyutlu diziler doฤŸru dรผzensiz diziler.

ร–rnek:

public class Guru99 {
    public static void main(String[] args) {
        // Create a 2-dimensional array with 4 rows and 4 columns.
        int[][] twoD = new int[4][4];

        // Assign three elements to it.
        twoD[0][0] = 1;
        twoD[1][1] = 2;
        twoD[3][2] = 3;

        System.out.print(twoD[0][0] + " ");
    }
}

Beklenen รงฤฑktฤฑ:

1

SSS

A Java Dizi, tek bir veri tรผrรผndeki elemanlarฤฑ depolayan sabit boyutlu bir kapsayฤฑcฤฑdฤฑr. Her elemana sฤฑfฤฑr tabanlฤฑ bir indeksle eriลŸilir ve her dizi, yuva sayฤฑsฤฑnฤฑ iรงeren bir uzunluk alanฤฑ sunar.

int[] arr ile tanฤฑmlayฤฑn, new int[size] ile oluลŸturun, ardฤฑndan indekse gรถre atama yapฤฑn. รœรงรผnรผ de tek satฤฑrda yapmak iรงin int[] arr = {1, 2, 3, 4} gibi bir sabit deฤŸer kullanฤฑn.

Java Tek boyutlu ve รงok boyutlu dizileri destekler. Tek boyutlu dizi dรผz bir listedir, รงok boyutlu dizi ise tablolar, ฤฑzgaralar ve matrisler iรงin kullanฤฑlan dizilerden oluลŸan bir dizidir.

ร–rneฤŸin `arr.length` gibi `length` alanฤฑnฤฑ kullanฤฑn. Bu, yuva sayฤฑsฤฑnฤฑ dรถndรผrรผr ve herhangi bir dizi tรผrรผ iรงin รงalฤฑลŸฤฑr. `String`'in aksine, diziler `length` deฤŸerini bir yรถntem รงaฤŸrฤฑsฤฑ olarak deฤŸil, bir alan olarak sunar.

JVM, her dizi eriลŸiminde sฤฑnฤฑr kontrolรผ yapar. Sฤฑfฤฑrฤฑn altฤฑndaki veya uzunluฤŸun รผzerindeki bir dizine okuma veya yazma iลŸlemi, C ve diฤŸer dillerde sฤฑk gรถrรผlen bellek bozulmasฤฑ hatalarฤฑnฤฑ รถnlemek iรงin ArrayIndexOutOfBoundsException hatasฤฑ fฤฑrlatฤฑr. C++.

Java Argรผmanlarฤฑ deฤŸer olarak geรงirir, ancak diziler iรงin bu deฤŸer referansฤฑn bir kopyasฤฑdฤฑr. Yรถntem aynฤฑ temel dizi รผzerinde iลŸlem yapar, bu nedenle yรถntem iรงindeki รถฤŸe deฤŸiลŸiklikleri รงaฤŸฤฑran tarafฤฑndan gรถrรผlebilir.

Makine รถฤŸrenimi kod yardฤฑmcฤฑlarฤฑ, "bildir-oluลŸtur-baลŸlat" kalฤฑbฤฑnฤฑ tanฤฑr ve sabit deฤŸerleri veya dรถngรผleri tamamlar. Ayrฤฑca, รงalฤฑลŸma zamanฤฑnda ArrayIndexOutOfBoundsException hatasฤฑ verecek yaygฤฑn "bir eksik" hatalarฤฑnฤฑ da iลŸaretlerler.

Evet. GitHub Copilot, dรผz metin yorumlarฤฑndan dizi bildirimleri, dรถngรผler, Arrays.sort รงaฤŸrฤฑlarฤฑ ve 2 boyutlu matris gezintileri oluลŸturur. Revรœretim verilerine karลŸฤฑ รงalฤฑลŸtฤฑrmadan รถnce oluลŸturulan sฤฑnฤฑrlarฤฑ inceleyin.

Bu yazฤฑyฤฑ ลŸu ลŸekilde รถzetleyin: