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 Methods
Интерфейсът ListIterator предоставя следните методи, както е показано в таблицата по-долу.
Име на метода | Прототип | Описание |
---|---|---|
Премахване() | премахване на празнотата () | Премахва последния елемент, върнат или чрез метод next () или предишен (). |
hasNext () | логически hasNext () | Проверява дали listIterator има повече елементи за преминаване в посока напред. |
следващия() | E следващ () | Връща следващия елемент в списъка. След това премества курсора, за да сочи към следващия елемент. |
hasPrevious () | boolean hasPrevious () | Проверява дали ListIterator има повече елементи в посока назад / назад. |
предишен () | E предишен () | Връща предишния елемент в списъка и премества курсора на една позиция в обратна посока. |
nextIndex () | int nextIndex () | Връща индекс на елемента, който ще бъде върнат чрез извикване на метод next (). |
предишенИндекс () | int previousIndex () | Връща индекса на елемента, който ще бъде върнат чрез извикване на метод previous (). |
седем) | празен комплект (E и) | Заменя последния елемент, върнат от метода next () или предишен () с новата стойност. |
добавяне (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 е в края на списъка.
Описание: Този метод може да бъде извикан преди метода next (). Методът nextIndex () връща индекса на елемента, който ще бъде върнат от метода next (). Ако ListIterator е в края на списъка, тогава този метод връща размера на списъка.
# 6) previousIndex ()
Прототип: int previousIndex ()
Параметри: НИЛ
Възвръщаема стойност: int => индекс на елемента, който ще бъде върнат от предишния () метод или -1, ако ListIterator е в началото на списъка.
Описание: Този метод може да бъде извикан преди предишния () метод. Методът previousIndex () връща индекса на елемента, който ще бъде върнат от метода previous (). Ако ListIterator е в началото на списъка, тогава методът връща -1.
# 7) премахване ()
Прототип: премахване на празнотата ()
Параметри: НИЛ
Възвръщаема стойност: нищожен
Описание: Методът remove () изтрива последния елемент, който е върнат или от предишния (), или от следващия () метод. Извикването на метода remove () може да бъде направено само веднъж на извикване на следващия () или предишен () метод.
Хвърлено изключение:
- 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 (), но предишният () метод ще върне само добавения елемент.
c ++ сън_за
Хвърлено изключение:
- 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); } }
Изход:
често задавани въпроси
В # 1) Какво се разбира под итератор?
Отговор: Iterator е интерфейс, който е част от рамката на Collection в Java. Този интерфейс присъства в пакета java.util. Интерфейсът на итератора се използва за итерация през колекцията от обекти.
В # 2) Какво представлява интерфейсът на итератор в Java?
Отговор: Интерфейс на итератор в Java се използва вместо изброявания, които преди са били използвани в Java Collection Framework. Интерфейсът на итератора присъства в Java от версия 1.2.
Използвайки този интерфейс, можете да прегледате всички Java колекции и да обработите елементите на колекцията.
В # 3) Каква е ползата от метода listIterator () в Java?
Отговор: Методът listIterator () принадлежи на пакета java.util. *. Този метод връща итератор на списък за конкретния списъчен обект, който го е извикал и може да се използва за обхождане на списъците и елементите за достъп. ListIterator работи само за изпълнение на списък.
с какво да отварям xml файлове
В # 4) Итераторът клас ли е или интерфейс?
Отговор: Iterator не е клас, а интерфейс в Java . Интерфейсът на Итератор може да бъде реализиран от останалите класове и да се използва за итерация през елементи от списък или колекция.
В # 5) Колко вида итератори има в Java?
Отговор: Итераторите в Java са три вида:
- Изброявания: Това е интерфейс, който се използва за четене на елементи от колекции като Vector, hashtable и др. Всеки елемент е номериран според позицията му в колекцията.
- Итератор: Можете да наречете този интерфейс универсален, тъй като можете да го приложите към всеки обект на колекция, за да преминете през колекцията. Това е подобрено изброяване с функция за премахване заедно с възможността за четене на елемент.
- 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 с примери за кодове