Java'da yineleyici

Java'da yineleyici

Java'da yineleyici en sık kullanılanlardan biridir Java Koleksiyonları Çerçevesindeki imleçler . Bir koleksiyonun öğeleri arasında tek tek geçiş yapmak veya yineleme yapmak için kullanılır.

  • Elemanları yalnızca ileri yönde hareket ettirmek için kullanılır.
  • Remove() işlevini kullanarak geçiş sırasında öğeleri güvenli bir şekilde kaldırır.
  • Iterator, tüm koleksiyon türlerine (Liste Kümesi ve Kuyruk) uygulanan evrensel bir imleçtir.

Yineleyicinin Bildirgesi

genel arayüz Yineleyici

Burada E, yinelenecek öğelerin türünü temsil eder.

Yineleyicinin Nesne Oluşturulması

Bir Iterator nesnesi, bir koleksiyon nesnesinde iterator() yöntemi çağrılarak oluşturulur. Burada her bir öğeyi bir dizide dolaşmak ve yazdırmak için bir Yineleyici kullanacağız. Dizi Listesi .

Koleksiyon isimler = yeni ArrayList <>();
Yineleyici itr = isimler.iterator();

Java
   import     java.util.ArrayList  ;   import     java.util.Iterator  ;   public     class   Geeks     {      public     static     void     main  (  String  []     args  )     {          // Create an ArrayList and add some elements      ArrayList   <  String  >     al     =     new     ArrayList   <>  ();      al  .  add  (  'A'  );      al  .  add  (  'B'  );      al  .  add  (  'C'  );      // Obtain an iterator for the ArrayList      Iterator   <  String  >     it     =     al  .  iterator  ();      // Iterate through the elements and print each one      while     (  it  .  hasNext  ())     {          // Get the next element      String     n     =     it  .  next  ();         System  .  out  .  println  (  n  );         }      }   }   

Çıkış
A B C  

Yineleyici Hiyerarşisi

Yineleyici, java.util paketi ve tüm koleksiyon sınıfları tarafından alt arayüzleri aracılığıyla uygulanır.

listiterator_extends_iterator_Yineleyici-imleç

Yineleyici Arayüzü Yöntemleri

Yineleyici arayüzü aşağıda listelenen üç yöntemi tanımlar:

  • hasNext(): Yinelemede daha fazla öğe varsa true değerini döndürür.
  • Sonraki(): Yinelemedeki bir sonraki öğeyi döndürür. Fırlatıyor NoSuchElementException daha fazla öğe yoksa.
  • kaldırmak(): next() tarafından döndürülen son öğeyi kaldırır. Bu yöntem next() çağrısı başına yalnızca bir kez çağrılabilir.

Not : Remove() yöntemi aşağıdaki gibi iki istisna oluşturabilir:

Dahili Çalışma

Bu bölümde Java Iterator ve yöntemlerinin dahili olarak nasıl çalıştığını anlamaya çalışacağız. Bu işlevselliği anlamak için aşağıdaki LinkedList nesnesini ele alalım.

1. Adım: Şimdi List nesnesi üzerinde aşağıda gösterildiği gibi bir Iterator nesnesi oluşturalım:

Yineleyici şehirlerIterator = şehirler.iterator();

'CitiesIteartor' yineleyicisi aşağıdaki gibi görünecektir:

Java Yineleyici Adım 1Adım-1

Burada Yineleyicinin İmleci Listenin ilk öğesinin öncesini işaret ediyor.

Adım 2: Şimdi aşağıdaki kod parçasını çalıştıracağız.

şehirlerIterator.hasNext();
şehirlerIterator.next();

Java Yineleyici Adım 2Adım-2

Yukarıdaki kod parçasını çalıştırdığımızda, yineleyicinin imleci yukarıdaki şemada gösterildiği gibi listedeki ilk öğeyi işaret eder.

3. Adım: Şimdi aşağıdaki kod parçasını çalıştıracağız.

şehirlerIterator.hasNext();
şehirlerIterator.next();

Java Yineleyici Adım 3Adım-3


Yukarıdaki kod parçasını çalıştırdığımızda, Iterator'ın İmleci yukarıdaki şemada gösterildiği gibi listedeki ikinci öğeyi işaret eder.

Adım 4: Yineleyicinin İmlecini Listenin son öğesine ulaşmak için bu işlemi yapın.

Java Yineleyici Adım nAdım-4

Adım 5: Son öğeyi okuduktan sonra aşağıdaki kod parçasını çalıştırırsak false değeri döndürür.

şehirlerIterator.hasNext();

Sonunda Java Yineleyici

Yineleyicinin İmleci Listenin son öğesinden sonrasını işaret ederken hasNext() yöntem yanlış değer döndürür.

Not: Java Iterator yalnızca ileri yönde yinelemeyi desteklediğinden tek yönlü imleç olarak bilinir. Buna karşılık ListIterator, her iki yönde de geçişe izin veren çift yönlüdür.

Java-Ilterator-6Java Yineleyici: İleri Yön

Örnek: Burada ArrayList'teki tek öğelerin arasında geçiş yapmak ve bunları kaldırmak için bir Yineleyici kullanacağız.

Java
   import     java.util.ArrayList  ;   import     java.util.Iterator  ;   public     class   Geeks     {      public     static     void     main  (  String  []     args  )     {          // Creating an ArrayList of Integer type      ArrayList   <  Integer  >     al     =     new     ArrayList   <>  ();      // Adding elements to the ArrayList      for     (  int     i     =     0  ;     i      <     10  ;     i  ++  )     {      al  .  add  (  i  );      }      // Printing the original list      System  .  out  .  println  (  'Original List: '     +     al  );      // Creating an Iterator for the ArrayList      Iterator   <  Integer  >     itr     =     al  .  iterator  ();      // Iterating through the list and removing odd elements      while     (  itr  .  hasNext  ())     {          // Getting the next element      int     i     =     itr  .  next  ();             System  .  out  .  print  (  i     +     ' '  );         // Removing odd elements      if     (  i     %     2     !=     0  )     {      itr  .  remove  ();      }      }      System  .  out  .  println  ();      // Printing the modified list after removal of odd elements      System  .  out  .  println  (  'Modified List: '     +     al  );      }   }   

Çıkış
Original List: [0 1 2 3 4 5 6 7 8 9] 0 1 2 3 4 5 6 7 8 9 Modified List: [0 2 4 6 8]  

Açıklama: Yukarıdaki örnekte, tamsayılardan oluşan bir ArrayList oluşturuyoruz, ardından bir Yineleyici kullanarak bunun üzerinden yineliyoruz ve tüm tek sayıları kaldırıyoruz. Listeyi tek öğeleri kaldırmadan önce ve çıkardıktan sonra yazdırır ve değiştirilen listeyi yalnızca çift sayılarla yazdırır.


Hoşunuza Gidebilir