Итератор у Јави

Итератор у Јави

Итератор у Јави је један од најчешће коришћених курсори у оквиру Јава Цоллецтионс Фрамеворк . Користи се за прелазак или понављање кроз елементе колекције један по један.

  • Користи се за прелазак елемената само у правцу напред.
  • Безбедно уклања елементе током преласка помоћу ремове().
  • Итератор је универзални курсор који се примењује на све типове колекција — скуп листе и ред чекања.

Декларација итератора

јавни интерфејс Итератор

Овде Е представља тип елемената који се понављају.

Креирање објекта итератора

Итератор објекат се креира позивањем методе итератор() на објекту колекције. Овде ћемо користити Итератор за прелазак и штампање сваког елемента у АрраиЛист .

Цоллецтион имена = нова листа низова <>();
Итератор итр = намес.итератор();

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  );         }      }   }   

Излаз
A B C  

Хијерархија итератора

Итератор је део јава.утил пакет и имплементирају га све класе колекције преко својих подинтерфејса.

листитератор_ектендс_итератор_Итератор-курсор

Методе интерфејса итератора

Интерфејс итератора дефинише три методе као што је наведено у наставку:

  • хасНект(): Враћа тачно ако итерација има више елемената.
  • следећи(): Враћа следећи елемент у итерацији. То баца НоСуцхЕлементЕкцептион ако више није присутан ниједан елемент.
  • уклони(): Уклања последњи елемент који је вратио нект(). Овај метод се може позвати само једном по позиву нект().

Напомена : ремове() метода може да избаци два изузетка и то на следећи начин:

Интерни рад

У овом одељку ћемо покушати да разумемо како Јава Итератор и његове методе функционишу интерно. Узмимо следећи објекат ЛинкедЛист да бисмо разумели ову функционалност.

1. корак: Сада направимо објекат Итератор на објекту Лист као што је приказано у наставку:

Итератор цитиИтератор = цитис.итератор();

Итератор 'цитиесИтеартор' ће изгледати овако:

Јава Итератор Корак 1Корак-1

Овде Итераторов курсор показује испред првог елемента листе.

2. корак: Сада ћемо покренути следећи исечак кода.

цитиИтератор.хасНект();
цитиИтератор.нект();

Јава Итератор, корак 2Корак-2

Када покренемо горњи исечак кода, курсор итератора показује на први елемент на листи као што је приказано на горњем дијаграму.

Корак 3: Сада ћемо покренути следећи исечак кода.

цитиИтератор.хасНект();
цитиИтератор.нект();

Јава Итератор, корак 3Корак-3


Када покренемо горњи исечак кода, курсор итератора показује на други елемент на листи као што је приказано на горњем дијаграму.

4. корак: Урадите овај процес да бисте дошли до курсора итератора до крајњег елемента листе.

Јава Итератор Корак брКорак-4

5. корак: Након читања завршног елемента, ако покренемо доњи исечак кода, он враћа лажну вредност.

цитиИтератор.хасНект();

Јава Итератор на крају

Пошто курсор итератора показује на последњи елемент листе после хасНект() метода враћа лажну вредност.

Напомена: Јава Итератор подржава само итерацију у правцу унапред, тако да је познат као једносмерни курсор. Насупрот томе, ЛистИтератор је двосмеран и омогућава прелазак у оба смера.

Јава-Илтератор-6Јава Итератор: Правац унапред

Пример: Овде ћемо користити Итератор за прелазак и уклањање чудних елемената из АрраиЛист-а.

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  );      }   }   

Излаз
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]  

Објашњење: У горњем примеру креирамо АрраиЛист целих бројева, а затим пролазимо кроз њу користећи Итератор и уклањамо све непарне бројеве. Штампа листу пре и после уклањања непарних елемената и штампа измењену листу само са парним бројевима.


Топ Чланци

Категорија