listiterator interface java with examples
Цей підручник пояснює інтерфейс ListIterator в Java для переходу до реалізації списку. Ви дізнаєтеся про схему класів та методи інтерфейсу ListIterator:
Подібно до Iterator, інтерфейс ListIterator забезпечує функціональність для переходу до реалізації списку в Java та доступу до елементів списку.
=> Познайомтесь тут, щоб побачити A-Z підручників із навчання Java тут.
Що ви дізнаєтесь:
Інтерфейс ListIterator в Java
Нижче наведено деякі основні характеристики інтерфейсу ListIterator:
- ListIterator був представлений в Java 1.2
- ListIterator - це підінтерфейс інтерфейсу Iterator, тобто він поширюється від інтерфейсу Iterator.
- ListIterator працює лише з реалізаціями списків.
- ListIterator підтримує всі операції, а саме: створення, читання, оновлення та видалення. (Колективно називаються CRUD-операціями).
- ListIterator - це двонаправлений ітератор, який підтримує ітератори прямого та зворотного напрямку.
- У випадку ListIterator поточний елемент відсутній. Позиція курсора вказує на розташування між елементом, повернутим попереднім методом (), і елементом, який буде повернутий методом next ().
Давайте обговоримо більше про цей інтерфейс у цьому посібнику.
Діаграма класу ListIterator
ListIterator - це інтерфейс, який належить до середовища API колекцій. Цей інтерфейс поширюється на інтерфейс Iterator. Окрім успадкування методів інтерфейсу Iterator, він також підтримує методи двонаправлених ітерацій та CRUD-операцій.
Схема класів інтерфейсу ListIterator показана нижче.
На рисунку вище показано схему класів інтерфейсу ListIterator. У наступному розділі ми детально обговоримо кожен із методів, показаних на малюнку.
Методи ListIterator
Інтерфейс ListIterator забезпечує наступні методи, як показано в таблиці нижче.
Назва методу | Прототип | Опис |
---|---|---|
видалити () | void remove () | Видаляє останній елемент, повернутий методом next () або previous (). |
hasNext () | логічний hasNext () | Перевіряє, чи має listIterator більше елементів для обходу вперед. |
наступний () | E наступна () | Повертає наступний елемент у списку. Потім переміщує курсор, щоб вказувати на наступний елемент. |
hasPrevious () | boolean hasPrevious () | Перевіряє, чи ListIterator містить більше елементів у зворотному / зворотному напрямку. |
Попередній() | E попередній () | Повертає попередній елемент у списку та переміщує курсор в одну позицію у зворотному напрямку. |
nextIndex () | int nextIndex () | Повертає індекс елемента, який буде повернутий за допомогою виклику методу next (). |
previousIndex () | int previousIndex () | Повертає індекс елемента, який буде повернутий за допомогою виклику методу previous (). |
сім) | порожній набір (E та) | Замінює останній елемент, повернутий методом next () або previous (), новим значенням. |
додати (E) | void add (E e) | Додає новий елемент до списку. |
Далі ми докладно опишемо кожен із цих методів.
# 1) hasNext ()
Прототип: логічний hasNext ()
Параметри: НІЛ
Повернене значення:
- true => список має наступний елемент
- False => список не має більше елементів
Опис: Цей метод перевіряє, чи ListIterator містить більше елементів для обходу в прямому напрямку. Якщо він має більше елементів, цей метод повертає true.
# 2) наступний ()
Прототип: E наступна ()
Параметри: НІЛ
Повернене значення: E => наступний елемент у списку.
Опис: Метод next () повертає наступний елемент у списку та переміщує курсор до наступного елемента.
Виключення: NoSuchElementException - якщо ListIterator не має наступного елемента.
# 3) hasPrevious ()
Прототип: boolean hasPrevious ()
Параметри: НІЛ
Повернене значення: true => ListIterator має попередній елемент
Опис: Перевіряє, чи ListIterator містить більше елементів у зворотному / зворотному напрямку.
# 4) попередній ()
Прототип: E попередній ()
Параметри: НІЛ
Повернене значення: E => попередній елемент у списку
Опис: Цей метод повертає попередній елемент у списку під час обертання назад, а потім переміщує курсор назад.
Виключення: NoSuchElementException - якщо ListIterator не має наступного елемента.
де я можу знайти ключ безпеки мережі на своєму маршрутизаторі
# 5) nextIndex ()
Прототип: int nextIndex ()
Параметри: НІЛ
Повернене значення: int => індекс елемента, який буде повернутий методом next () або розміром списку, якщо ListIterator знаходиться в кінці списку.
Опис: Цей метод можна викликати до наступного () методу. Метод nextIndex () повертає індекс елемента, який буде повернутий методом next (). Якщо ListIterator знаходиться в кінці списку, цей метод повертає розмір списку.
# 6) previousIndex ()
Прототип: int previousIndex ()
Параметри: НІЛ
Повернене значення: int => індекс елемента, який буде повернутий попереднім методом () або -1, якщо ListIterator знаходиться на початку списку.
Опис: Цей метод можна викликати до попереднього () методу. Метод previousIndex () повертає індекс елемента, який буде повернутий методом previous (). Якщо ListIterator знаходиться на початку списку, тоді метод повертає -1.
# 7) видалити ()
Прототип: void remove ()
Параметри: НІЛ
Повернене значення: порожнеча
Опис: Метод remove () видаляє останній елемент, який був повернутий або попереднім (), або наступним () методом. Виклик методу remove () може бути здійснений лише один раз за виклик методу next () або попереднього ().
Виключення:
- UnsupportedOperationException - ListIterator не підтримує операцію видалення.
- IllegalStateException - Якщо поточна операція перебуває у незаконному стані, тобто ні наступна, ні попередня ще не були викликані або після виклику наступній або попередній, тоді додавання або видалення не викликалося.
# 8) набір (E)
Прототип: порожній набір (E та)
Параметри: e => новий елемент, яким старий елемент слід замінити
Повернене значення: порожнеча
Опис: Метод set () встановлює елемент, повернутий або попереднім (), або наступним () методом з новим значенням, переданим як аргумент. Цей метод можна викликати, лише якщо метод add () або remove () не викликається після останнього виклику методу previous () або next ().
Виключення:
- UnsupportedOperationException - ListIterator не підтримує встановлену операцію.
- ClassCastException - Якщо вказаний елемент неможливо додати через його клас.
- IllegalArgumentException - якщо доданий елемент / аргумент є незаконним або недійсним.
- IllegalStateException - Якщо поточна операція знаходиться в незаконному стані, тобто ні наступна, ні попередня ще не викликані або після виклику наступній або попередній, додавання або видалення не викликалися.
# 9) додати (E)
Прототип: void add (E e)
Параметри: e => новий елемент, який потрібно додати до списку
Повернене значення: порожнеча
Опис: Метод add () використовується для додавання нового елемента до списку. Елемент додається безпосередньо перед елементом, який повернув би наступний (), якщо такий є, і після елемента, який повернув би попередній () метод.
Зверніть увагу, що в результаті додавання елемента не буде змін для повернення значення next (), але попередній () метод поверне лише доданий елемент.
Виключення:
- UnsupportedOperationException - ListIterator не підтримує метод додавання.
- ClassCastException, якщо вказаний елемент, який неможливо додати через свій клас.
- IllegalArgumentException, якщо доданий елемент / аргумент є незаконним або недійсним.
Наступна програма Java демонструє демонстрацію всіх вищезазначених методів ListIterator.
import java.util.*; public class Main{ public static void main(String args()){ //define list and add elements to it ListnameList=new ArrayList(); nameList.add('Savich'); nameList.add('Dane'); nameList.add('Lacey'); nameList.add(1,'James'); System.out.println('Original List:' + nameList); //define a list iterator for this list ListIterator list_itr=nameList.listIterator(); System.out.println('List elements in forward direction:'); //while there are still elements in the list, display next index and element while(list_itr.hasNext()){ System.out.println('Index:'+list_itr.nextIndex()+' Element:'+list_itr.next()); } //call set() method to set next value to 'Sally' list_itr.set('Sally'); System.out.println('
List after set('Sally'):' + nameList); //while there are elements in the list, display previous index and element System.out.println('
List elements in backward direction:'); while(list_itr.hasPrevious()){ System.out.println('Index:'+list_itr.previousIndex()+' Element:'+list_itr.previous()); } //call remove () method list_itr.remove(); System.out.println('List after remove():' + nameList); } }
Вихід:
Інтерфейс ListIterator у прикладах Java
Побачимо ще один приклад використання ListIterator. У цій програмі ми маємо ArrayList цілочисельних значень. Потім за допомогою ListIterator ми обходимо список і відображаємо елементи списку.
Крім того, ми вибираємо лише парні елементи в ArrayList і змінюємо їх значення на непарні числа, використовуючи методи ListIterator.
import java.util.ArrayList; import java.util.ListIterator; public class Main { public static void main(String() args) { //define ArrayList and add values to it using for loop ArrayList intList = new ArrayList(); for (int i = 0; i <10; i++) intList.add(i+2); System.out.println('Original ArrayList:' + intList); // define the ListIterator ListIterator list_itr = intList.listIterator(); System.out.println('List elements using listIterator:'); //while list has more elements while (list_itr.hasNext()) { //retrieve next element int i = (Integer)list_itr.next(); // print the element System.out.print(i + ' '); // change only even numbers to odd by setting value = value +1 to current element if (i%2==0) { list_itr.set(i+1); // set method to change value } } System.out.println(); System.out.println('Final ArrayList of odd values:' + intList); } }
Вихід:
Часті запитання
Q # 1) Що мається на увазі під ітератором?
Відповідь: Iterator - це інтерфейс, який є частиною фреймворку Collection в Java. Цей інтерфейс присутній у пакеті java.util. Інтерфейс ітератора використовується для ітерації через колекцію об’єктів.
Q # 2) Що таке інтерфейс ітератора в Java?
Відповідь: Інтерфейс ітератора в Java використовується замість Перелічень, які раніше використовувались у Java Collection Framework. Інтерфейс ітератора присутній у Java з версії 1.2.
За допомогою цього інтерфейсу ви можете переглядати будь-які колекції Java та обробляти елементи колекції.
Запитання №3) Яка користь методу listIterator () в Java?
Відповідь: Метод listIterator () належить пакунку java.util. *. Цей метод повертає ітератор списку для конкретного об'єкта списку, який його викликав, і може використовуватися для обходу списків та елементів доступу. ListIterator працює лише з реалізаціями списків.
Q # 4) Ітератор - це клас чи інтерфейс?
Відповідь: Ітератор - це не клас, а інтерфейс в Java . Інтерфейс ітератора може бути реалізований іншими класами і використаний для ітерації елементів списку або колекції.
Q # 5) Скільки типів ітераторів є в Java?
Відповідь: Ітератори в Java бувають трьох типів:
- Перелічення: Це інтерфейс, який використовується для зчитування елементів із колекцій, таких як Vector, хеш-таблиця тощо. Кожен елемент нумерується відповідно до свого положення в колекції.
- Ітератор: Ви можете назвати цей інтерфейс універсальним, оскільки ви можете застосувати його до будь-якого об'єкта колекції для обходу колекції. Це вдосконалений перелік із функцією видалення разом із можливістю читання елемента.
- ListIterator: ListIterator - це інтерфейс, який забезпечує двонаправлену ітерацію, тобто в прямому та зворотному напрямках. ListIterator працює лише з реалізаціями списків, включаючи LinkedList, ArrayList тощо.
Висновок
Інтерфейс ListIterator в Java походить від інтерфейсу Iterator. На додаток до безпосереднього успадкування методів інтерфейсу Iterator, інтерфейс listIterator представляє різні власні методи, які можуть допомогти програмісту у виконанні двонаправленої ітерації.
У цьому підручнику ми обговорили схему класів та різні методи інтерфейсу ListIterator. Ми також бачили реалізацію цих методів разом із способами обходу різних списків.
=> Завітайте сюди, щоб побачити навчальну серію Java для всіх.
Рекомендована література
- Інтерфейс Java та підручник з абстрактних класів із прикладами
- Підручник JAVA для початківців: 100+ практичних навчальних посібників Java
- Java Iterator: Навчіться використовувати ітератори в Java на прикладах
- Підручник з довжини масиву Java із прикладами коду
- Нерівний масив у Java - Підручник із прикладами
- Зворотній масив у Java - 3 методи з прикладами
- Як відсортувати масив на Java - Підручник з прикладами
- Видатні функції Java 8 із прикладами коду