0Pricing
Java Academy · Ders

İndekse Göre Ekleme, Silme ve Kaydırma

Yeni bir diziye eleman ekleyin, sola kaydırarak indekse göre silin ve güvenli sınır kontrolleri yapın.

İndekse Göre Ekleme, Silme ve Kaydırma, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 3 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 3 dersten oluşur.

Ekleme Genel Bakışı

Ekleme, sıradan bir diziye genellikle bir fazla yuvalı yeni bir dizi oluşturur. Konumdan önceki öğeleri kopyalayın, yeni değeri yerleştirin, ardından kalan öğeleri bir konum kaydırarak kopyalayın.

Yeni Diziye Ekleme

i dizinine yeni bir diziye ekleyin:

public class Main {
  // Method to insert a value at a given index
  static int[] insertAt(int[] a, int i, int val) {
    // Create a new array, one element larger
    int[] b = new int[a.length + 1];

    // Copy elements before the insertion index
    for (int p = 0; p < i; p = p + 1) {
      b[p] = a[p];
    }

    // Insert the new value at position i
    b[i] = val;

    // Copy the rest of the elements after position i
    for (int p = i; p < a.length; p = p + 1) {
      b[p + 1] = a[p];
    }

    return b;
  }

  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 9, 12};

    // Insert 99 at index 2 (between 8 and 9)
    int[] b = insertAt(a, 2, 99);

    // Print new array
    System.out.print("Array after insertion: ");
    for (int x : b) {
      System.out.print(x + " ");
    }
  }
}

Silme ve Kaydırma

Dizinle silme işlemini sola kaydırarak ve son hücreyi temizleyerek yapın:

public class Main {
  // Method to delete an element at index k
  static void deleteAt(int[] a, int k) {
    // Shift elements to the left, starting from index k
    for (int i = k; i < a.length - 1; i = i + 1) {
      a[i] = a[i + 1];
    }

    // Clear the last element (since it's now duplicated)
    a[a.length - 1] = 0; 
  }

  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 9, 12, 15};

    // Delete element at index 2 (value = 9)
    deleteAt(a, 2);

    // Print updated array
    System.out.print("Array after deletion: ");
    for (int x : a) {
      System.out.print(x + " ");
    }
  }
}

Sınırları Denetleme

Sınır denetimi, çalışma zamanı hatalarını önlemeye yardımcı olur. n öğe için geçerli dizin aralığı 0..n-1'dir. Ekleme için geçerli i aralığı 0..n'dir.

public class Main {
  // Insert a value at a given index
  static int[] insertAt(int[] a, int i, int val) {
    // Validate index (0 ≤ i ≤ a.length is allowed for insert)
    if (i < 0 || i > a.length) {
      throw new IllegalArgumentException("bad index");
    }

    int[] b = new int[a.length + 1];
    for (int p = 0; p < i; p++) b[p] = a[p];
    b[i] = val;
    for (int p = i; p < a.length; p++) b[p + 1] = a[p];
    return b;
  }

  // Delete a value at a given index
  static void deleteAt(int[] a, int k) {
    // Validate index (0 ≤ k < a.length is required for delete)
    if (k < 0 || k >= a.length) {
      throw new IllegalArgumentException("bad index");
    }

    for (int i = k; i < a.length - 1; i++) {
      a[i] = a[i + 1];
    }
    a[a.length - 1] = 0; // clear the last slot
  }

  public static void main(String[] args) {
    int[] a = {5, 8, 9, 12};

    // Test insert
    int[] b = insertAt(a, 2, 99);
    System.out.print("After insert: ");
    for (int x : b) System.out.print(x + " ");

    System.out.println();

    // Test delete
    deleteAt(b, 3);
    System.out.print("After delete: ");
    for (int x : b) System.out.print(x + " ");
  }
}

Yeni Diziden Silme

k dizinini atlayan daha küçük bir kopya oluşturun:

public class Main {
  // Method to create a new array without the element at index k
  static int[] without(int[] a, int k) {
    // Validate index
    if (k < 0 || k >= a.length) {
      throw new IllegalArgumentException("bad index");
    }

    // New array has one fewer element
    int[] b = new int[a.length - 1];

    // Copy elements before k
    for (int p = 0; p < k; p = p + 1) {
      b[p] = a[p];
    }

    // Copy elements after k (shift left by one)
    for (int p = k + 1; p < a.length; p = p + 1) {
      b[p - 1] = a[p];
    }

    return b;
  }

  public static void main(String[] args) {
    int[] a = {5, 8, 9, 12, 15};

    // Remove element at index 2 (value = 9)
    int[] b = without(a, 2);

    // Print original
    System.out.print("Original array: ");
    for (int x : a) System.out.print(x + " ");
    System.out.println();

    // Print new array
    System.out.print("Array without index 2: ");
    for (int x : b) System.out.print(x + " ");
  }
}

Ekleme/Silme Örneği

Çalıştırın: Yeni diziye eklemeyi, sola kaydırarak yerinde silmeyi ve kopyalayarak silmeyi görün.

public class Main {
  static int[] insertAt(int[] a, int i, int val) {
    if (i < 0 || i > a.length) throw new IllegalArgumentException("bad index");
    int[] b = new int[a.length + 1];
    for (int p = 0; p < i; p = p + 1) b[p] = a[p];
    b[i] = val;
    for (int p = i; p < a.length; p = p + 1) b[p + 1] = a[p];
    return b;
  }

  static void deleteAtShift(int[] a, int k) {
    if (k < 0 || k >= a.length) throw new IllegalArgumentException("bad index");
    for (int i = k; i < a.length - 1; i = i + 1) {
      a[i] = a[i + 1];
    }
    a[a.length - 1] = 0;
  }

  static int[] without(int[] a, int k) {
    if (k < 0 || k >= a.length) throw new IllegalArgumentException("bad index");
    int[] b = new int[a.length - 1];
    for (int p = 0; p < k; p = p + 1) b[p] = a[p];
    for (int p = k + 1; p < a.length; p = p + 1) b[p - 1] = a[p];
    return b;
  }

  static String join(int[] a) {
    String s = "";
    for (int i = 0; i < a.length; i = i + 1) {
      s = s + a[i] + (i + 1 < a.length ? " " : "");
    }
    return s;
  }

  public static void main(String[] args) {
    int[] a = {10, 20, 30, 40};
    System.out.println("a           = " + join(a));

    int[] b = insertAt(a, 2, 99);
    System.out.println("insertAt(2) = " + join(b));

    deleteAtShift(a, 1);
    System.out.println("deleteAt(1) = " + join(a));

    int[] c = without(b, 3);
    System.out.println("without(3)  = " + join(c));
  }
}

Silme ve Kaydırma Kontrolü

Hızlı kontrol: k dizinindeki öğeyi sola kaydırarak silen ve son yuvayı temizleyen kod parçası hangisidir?

Özet ve Sonraki Adım

Özet: Yeni bir dizi kullanarak ekleme yaptınız, sola kaydırarak silme yaptınız ve daha küçük kopyalar oluşturdunuz. Her zaman sınırları denetleyin.

Sonraki adım: Nesne dizilerine ve sıklıkları sayma gibi basit algoritmalara geçin.

Sıkça Sorulan Sorular

“İndekse Göre Ekleme, Silme ve Kaydırma” dersi ücretsiz mi?

Evet — “İndekse Göre Ekleme, Silme ve Kaydırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 3 dersten oluşur.

“İndekse Göre Ekleme, Silme ve Kaydırma” dersinde ne öğreneceğim?

Yeni bir diziye eleman ekleyin, sola kaydırarak indekse göre silin ve güvenli sınır kontrolleri yapın. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 3. dersidir.

“İndekse Göre Ekleme, Silme ve Kaydırma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Dizilerin temellerini öğrenin: sabit boyut, sıfır tabanlı indeksleme, oluşturma/başlatma ve güvenli dolaşma.
  2. Arama, Minimum/Maksimum ve Ters Çevirme
  3. İndekse Göre Ekleme, Silme ve Kaydırma
← Java Academy Sayfasına Dön