Page 43 - 4656
P. 43

Алгоритми і структури даних. Лабораторний практикум.

                      boolean hasPrevious () - повертає true, якщо в колекції є
                       елементи, які стоять перед поточним елементом;
                      int nextindex () - повертає індекс поточного елемента;
                       якщо поточним є останній елемент колекції, повертає
                       розмір колекції;
                      Object  divvious  ()  -  повертає  попередній  елемент  і
                       робить його поточним;
                      int  divvious  index  ()  -  повертає  індекс  попереднього
                       елемента;
                      void Set (Object element) - замінює поточний елемент
                       елементом element;
                      виконується відразу після next () або divvious ().
                    Як бачите, ітератори можуть змінювати колекцію, у якій
            вони  працюють,  додаючи,  видаляючи  і  замінюючи  елементи.
            Щоб  це  не  призводило  до  конфліктів,  передбачена  виняткова
            ситуація,  яка  виникає  при  спробі  використання  ітераторів
            паралельно "рідним" методів колекції. Саме тому в наступному
            прикладі дії з ітератором укладені в блок try (){}- catch (){}.
                    Приклад з використанням ітератора ListIterator.


               Vector v = new Vector ();
               String s = "Рядок, що ми хочемо розібрати на слова.";
               StringTokenizer st = new StringTokenizer (s, "\ t \ n \ r ,.");
               while (st.hasMoreTokens ()) {
               v.add (st.nextToken ()); / / Додаємо в кінець вектора
               }
               ListIterator lit = v.listlterator (); / / Отримуємо ітератор вектора
               try {
               while (lit.hasNext ()) / / Поки у векторі є елементи
               System.out.println (lit.next ()); / / Переходимо до наступного
               while (lit.hasPrevious ()) System.out.println (lit.divvious ());



                                                                             41
   38   39   40   41   42   43   44   45   46   47   48