Итераторский интерфейс
1. Итератор интерфейс
Итерабильный
Встроенный метод итератор () возвращает недавно созданный итератор.
нравиться:
публичный интерфейс iteerable {итератор итератор (); } Итератор имеет два метода: hasnext () и Next () для реализации. публичный интерфейс итератор {boolean hasnext (); Item Next (); void remove (); // необязательная реализация}
2. Реализовать импорт
импортировать java.util.iterator;
Общие классы, реализовать итерабируемые интерфейсные реализации иерных <пункт>
Реализует метод итератор () итератор и возвращает любой определенный тип итератора.
Определить тип итератора реализует итератор <пункт>
Реализовать hasnext (), next () и remove ()
3. Пример:
общедоступный стек класса <пункт> реализует итерабильный <tem> {public iterator <Item> iterator () {return new listiceTerator <tem> (первое); } частные классы ListIterator <Item> реализует итератор <пункт> {Private Node <Item> current; public listiceTerator (node <пункт> сначала) {current = First; } public boolean hasnext () {return current! = null; } public void remove () {бросить новый UnsupPortedOperationException (); } public item Next () {if (! HasNext ()) бросить новый noshelementexception (); Элемент ITEM = current.Item; current = current.next; вернуть элемент; }}} 4. Вызов методов
Фореат итерация
для (String S: Stack) System.out.println (s);
Если это базовый тип, такой как Int/Double, используйте предыдущие отношения конверсии
5. Перецирование
Итератор I = Stack.iterator (); while (i.hasnext ()) {string s = i.next (); }Перечисление интерфейс
Перечисление - это интерфейсный класс в java.util. В перечисление он заключает в себе методы перечисления наборов данных. Это похоже на итератор. Он используется для прохождения элементов в коллекции. Тем не менее, перечисление перечисления обеспечивает только функцию пересечения элементов коллекций вектора и хэштета. Этот тип объекта сбора получает объект перечисления, вызывая метод Elements (), а затем вызывает следующий метод для прохождения элементов в сборе.
HasmoreElements (): определяет, есть ли еще данные в объекте перечисления
NextElement (): Получите следующие данные в объекте перечисления
Примеры следующие:
Перечисление req = request.getParameternames (); while (req.hasmoreElements ()) {Object obj = (Object) req.NextElement (); if (obj.toString (). trim (). equals ("last страница")) {System.out.println ("Last Page /n"); } else if (obj.toString (). trim (). Equals ("nextPage")) {System.out.println ("nextpage"); }} Разница между итератором и перечислением
В коллекциях Java мы обычно пересекаем коллекцию через «Итератор» или «класс перечисления». Сегодня давайте узнаем о различиях между ними вместе.
Давайте сначала посмотрим на исходные коды перечисления. Java и iterator.java, а затем поговорим об их различиях.
Перечисление - это интерфейс, а его исходный код заключается в следующем:
Package java.util; Перечисление публичного интерфейса <e> {boolean hasmoreElements (); E nextElement ();} Итератор также является интерфейсом, и его исходный код заключается в следующем:
Package java.util; итератор публичного интерфейса <e> {boolean hasnext (); E Next (); void remove ();} Прочитав код, давайте поговорим о разнице между ними.
(01) различные интерфейсы функции
Перечисление имеет только 2 функциональных интерфейса. Благодаря перечислению мы можем только прочитать данные коллекции, но не можем изменить данные.
Итератор имеет только 3 функциональных интерфейса. В дополнение к чтению данных сбора, итератор также может удалить данные.
(02) Итератор поддерживает механизм сбоя, но перечисление этого не делает.
Перечисление - это интерфейс, добавленный JDK 1.0. Используемые функции включают вектор, хэштебу и другие классы, которые добавляются в JDK 1.0. Цель перечисления - предоставить им график обхода. Само перечисление не поддерживает синхронизацию, но при перечислении вектора и хэштета реализации добавляется синхронизация.
Итератор - это интерфейс, добавленный только в JDK 1.2. Он также предоставляет интерфейсы обхода для таких коллекций, как HashMap и ArrayList. Итератор поддерживает механизм сбоя.