logo

Java'da yineleyici

Java'da bir Yineleyici Java imleçlerinden biridir. Java Yineleyici Java nesne bileşenleri koleksiyonunun tamamını tek tek yinelemek için uygulanan bir arayüzdür. Java 1.2 Koleksiyon çerçevesinden bu yana Java programlama dilinde kullanımı ücretsizdir. Java.util paketine aittir.

Java Iterator, Java 1.2'de tanıtılmış olsa da, hala Koleksiyon nesnesinin öğeleri arasında geçiş yapmak için mevcut en eski araç değildir. Java programlama dilindeki en eski Yineleyici, Enumerator'dan önceki Yineleyicidir. Java Iterator arayüzü, başlangıçta ArrayLists gibi bazı erişilebilir koleksiyonlar üzerinde geçiş yapmak için uygulanan numaralandırıcı yineleyicinin yerini alır.

Java Yineleyici aynı zamanda Java Yineleyicisi olarak da bilinir. evrensel imleç Koleksiyon çerçevesinin tüm sınıfları için uygun olduğundan Java'nın. Java Iterator ayrıca READ ve REMOVE gibi işlemlere de yardımcı olur. Java Iterator arayüzünü numaralandırma iteratör arayüzü ile karşılaştırdığımızda Java Iterator'da bulunan metotların adlarının daha kesin ve kullanımı kolay olduğunu söyleyebiliriz.

Java Iterator'ın Avantajları

Java'da yineleyici, sayısız avantajı nedeniyle çok yaygın hale geldi. Java Iterator'ın avantajları şu şekilde verilmiştir:

  • Kullanıcı bu yineleyicileri Koleksiyon çerçevesinin herhangi bir sınıfına uygulayabilir.
  • Java Iterator'da hem okuma hem de kaldırma işlemlerini kullanabiliriz.
  • Bir kullanıcı for döngüsüyle çalışıyorsa Koleksiyonu modernize edemez (ekleyebilir/kaldıramaz), oysa Java Iterator kullanıyorsa Koleksiyonu kolayca güncelleyebilir.
  • Java Yineleyici, Koleksiyon API'sinin Evrensel İmleci olarak kabul edilir.
  • Java Iterator'daki yöntem adları çok kolaydır ve kullanımı çok basittir.

Java Iterator'ın Dezavantajları

Sayısız avantajına rağmen Java Iterator'ın çeşitli dezavantajları da vardır. Java Iterator'ın dezavantajları aşağıda verilmiştir:

  • Java Yineleyici yinelemeyi yalnızca ileri yönde korur. Basit bir deyişle, Java Yineleyici tek yönlü bir Yineleyicidir.
  • Yeni bir bileşenin değiştirilmesi ve genişletilmesi Java Iterator tarafından onaylanmaz.
  • CRUD İşlemlerinde Java Iterator, CREATE ve UPDATE gibi çeşitli işlemleri tutmaz.
  • Spliterator ile karşılaştırıldığında, Java Iterator paralel modeldeki geçiş öğelerini desteklemez; bu da Java Iterator'ın yalnızca Sıralı yinelemeyi desteklediği anlamına gelir.
  • Spliterator ile karşılaştırıldığında Java Iterator, toplu veri hacminde geçiş yapmak için daha güvenilir yürütmeyi desteklemez.

Java Yineleyici nasıl kullanılır?

Bir kullanıcının Java Iterator'ı kullanması gerektiğinde, üzerinden geçmek istediği nesnelerin koleksiyonundan Iterator arayüzünün bir örneğini oluşturması zorunludur. Bundan sonra, alınan Yineleyici, kullanıcının nesneler koleksiyonunun her bir öğesi üzerinden geçeceğinden emin olmak için temel koleksiyondaki bileşenlerin izini sürdürür.

Kullanıcı, bu koleksiyona giden bir Yineleyici üzerinden geçerken temel koleksiyonu değiştirirse, o zaman Yineleyici genellikle bunu kabul edecek ve kullanıcının bir sonraki bileşeni Yineleyiciden almaya çalıştığı bir sonraki seferde bir istisna atacaktır.

c++ dize bölünmesi

Java Yineleyici Yöntemleri

Aşağıdaki şekil Java Iterator arayüzünün sınıf diyagramını mükemmel bir şekilde göstermektedir. Toplamda dört yöntem içerir:

  • hasNext()
  • Sonraki()
  • kaldırmak()
  • forEachRemaining()

forEachRemaining() yöntem Java 8'e eklendi. Her yöntemi ayrıntılı olarak tartışalım.

    Boolean hasNext(): Yöntem hiçbir parametreyi kabul etmez. Yinelemede daha fazla öğe kalırsa true değerini döndürür. Daha fazla öğe kalmamışsa false değerini döndürür.
    Yinelemede daha fazla öğe kalmadıysa next() yöntemini çağırmaya gerek yoktur. Basit bir ifadeyle, yöntemin next() yönteminin çağrılıp çağrılmayacağına karar vermek için kullanıldığını söyleyebiliriz.E sonraki():hasNext() yöntemine benzer. Ayrıca hiçbir parametreyi kabul etmez. E'yi, yani geçişteki bir sonraki öğeyi döndürür. Nesnelerin yinelemesinde veya koleksiyonunda yinelenecek başka öğe kalmadıysa NoSuchElementException oluşturulur.varsayılan void kaldırma():Bu yöntem aynı zamanda herhangi bir parametre gerektirmez. Bu metodun dönüş tipi yoktur. Bu yöntemin ana işlevi, temel koleksiyonda dolaşan yineleyicinin döndürdüğü son öğeyi kaldırmaktır. Remove () yöntemi, sonraki () yöntem çağrısında hemen hemen bir kez talep edilebilir. Yineleyici kaldırma işlemini desteklemiyorsa UnSupportedOperationException'ı oluşturur. Ayrıca bir sonraki yöntem henüz çağrılmadıysa IllegalStateException'ı da atar.varsayılan void forEachRemaining(Tüketici eylemi):Java Iterator'ın parametre alan tek yöntemidir. Eylemi parametre olarak kabul eder. Eylem, yapılması gerekenden başka bir şey değildir. Yöntemin dönüş türü yoktur. Bu yöntem, tüm bileşenler tüketilene veya eylem bir özel durum oluşturana kadar koleksiyonun tüm sol bileşenleri üzerinde özelleştirilmiş işlemi gerçekleştirir. Eylem tarafından oluşturulan istisnalar arayan kişiye iletilir. Eylem null ise bir NullPointerException oluşturur.

Java Yineleyici Örneği

Şimdi Java Iterator arayüzünün avantajlarını göstermek için bir Java programı çalıştırmanın zamanı geldi. Aşağıdaki kod şehir adlarından oluşan bir ArrayList oluşturur. Daha sonra ArrayList'in iterator () yöntemini uygulayarak bir yineleyici başlatıyoruz. Bundan sonra liste her bir öğeyi temsil edecek şekilde geçilir.

JavaIteratorExample.java

 import java.io.*; import java.util.*; public class JavaIteratorExample { public static void main(String[] args) { ArrayList cityNames = new ArrayList(); cityNames.add('Delhi'); cityNames.add('Mumbai'); cityNames.add('Kolkata'); cityNames.add('Chandigarh'); cityNames.add('Noida'); // Iterator to iterate the cityNames Iterator iterator = cityNames.iterator(); System.out.println('CityNames elements : '); while (iterator.hasNext()) System.out.print(iterator.next() + ' '); System.out.println(); } } 

Çıktı:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Hatırlanacak noktalar

  • Java Iterator, Java 1.2 Koleksiyonu çerçevesinde Java Programlama diline eklenen bir arayüzdür. Java.util paketine aittir.
  • Koleksiyon çerçevesinin nesneleri arasında geçiş yapmak için uygulanan Java İmleçlerinden biridir.
  • Java Iterator, koleksiyon nesnesinin bileşenlerini birer birer yinelemek için kullanılır.
  • Java Yineleyici, Koleksiyon çerçevesinin tüm sınıfları için uygun olduğundan Java'nın Evrensel imleci olarak da bilinir.
  • Java Iterator ayrıca READ ve REMOVE gibi işlemleri de destekler.
  • Iterator sınıfının yöntem adları, Enumeration Iterator'ın yöntem adlarına kıyasla çok basit ve kullanımı kolaydır.