반복자 인터페이스
1. 반복자 인터페이스
반복적 인
내장 메소드 iterator ()는 새로 생성 된 반복기를 반환합니다.
좋다:
공개 인터페이스 반복 가능 {iterator iterator (); } 반복자에는 hasnext ()와 다음 ()가 구현할 두 가지 방법이 있습니다. 공개 인터페이스 반복자 {boolean hasnext (); 항목 다음 (); 무효 제거 (); // 선택적 구현}
2. 가져 오기 구현
import java.util.iterator;
일반 클래스, 반복 가능한 인터페이스 구현은 반복 가능한 <item>을 구현합니다
정의 된 Ierator 유형을 반환하여 Ierable의 iterator () 메소드를 구현합니다.
반복자 유형을 정의하면 반복자 <item>
hasnext (), next ()를 구현하고 ()
3. 예 :
Public Class Stack <item> 반복 가능한 <item> {public iterator <item> iterator () {return new listiterator <item> (첫 번째); } private class listiterator <item> 반복자 <item> {private node <item> current를 구현합니다. public listiterator (node <item> first) {current = first; } public boolean hasnext () {return current! = null; } public void remove () {새로운 UnsupportedOperationException (); } public item next () {if (! hasnext ()) 던질 새 nosuchelementException (); 항목 항목 = current.Item; current = current.next; 반품 항목; }}} 4. 통화 방법
반복적 인 반복
for (string s : stack) system.out.println (s);
int/double과 같은 기본 유형 인 경우 이전 전환 관계를 사용하십시오.
5. 루핑 트래버스
반복자 i = stack.iterator (); while (i.hasnext ()) {문자열 s = i.next (); }열거 인터페이스
열거는 java.util의 인터페이스 클래스입니다. 열거하면 데이터 세트 열거에 대한 방법을 캡슐화합니다. 반복자와 유사합니다. 컬렉션의 요소를 가로 지르는 데 사용됩니다. 그러나 열거 열거는 벡터 및 해시 가능한 유형 컬렉션의 요소를 가로 지르는 기능 만 제공합니다. 이 유형의 수집 객체는 elements () 메소드를 호출하여 열거 객체를 얻은 다음 다음 메소드를 호출하여 컬렉션의 요소를 가로 지릅니다.
HasmoreElements () : 열거 개체에 데이터가 있는지 여부를 결정합니다.
NextElement () : 열거 개체에서 다음 데이터를 가져옵니다
예는 다음과 같습니다.
열거 req = request.getParameterNames (); while (req.hasmoreElements ()) {object obj = (Object) req.nextElement (); if (obj.toString (). trim (). Equals ( "lastpage")) {System.out.println ( "lastpage /n"); } else if (obj.toString (). trim (). Equals ( "NextPage")) {System.out.println ( "NextPage"); }} 반복자와 열거의 차이
Java 컬렉션에서는 일반적으로 "Iterator"또는 "Enumeration Class"를 통해 컬렉션을 통과합니다. 오늘, 함께 그들 사이의 차이점에 대해 알아 보겠습니다.
먼저 열거의 소스 코드를보고 Java 및 Iterator.java를보고 그 차이에 대해 이야기합시다.
열거는 인터페이스이며 소스 코드는 다음과 같습니다.
패키지 java.util; public 인터페이스 열거 <e> {boolean hasmoreelements (); e nextElement ();} 반복자도 인터페이스이며 소스 코드는 다음과 같습니다.
패키지 java.util; public interface iterator <e> {boolean hasnext (); e 다음 (); void remove ();} 코드를 읽은 후 코드의 차이점에 대해 이야기 해 봅시다.
(01) 다른 함수 인터페이스
열거에는 2 개의 기능 인터페이스 만 있습니다. 열거를 통해 컬렉션의 데이터 만 읽을 수 있지만 데이터를 수정할 수는 없습니다.
반복자에는 3 개의 기능 인터페이스 만 있습니다. 컬렉션의 데이터를 읽는 것 외에도 반복자는 데이터를 삭제할 수도 있습니다.
(02) 반복자는 실패한 메커니즘을 지원하지만 열거는 그렇지 않습니다.
열거는 JDK 1.0에 의해 추가 된 인터페이스입니다. 사용 된 기능에는 벡터, 해시 가능 및 기타 클래스가 모두 JDK 1.0에 추가됩니다. 열거의 목적은 트래버스 인터페이스를 제공하는 것입니다. 열거 자체는 동기화를 지원하지 않지만 벡터 및 해시 가능 구현 열거 일 때 동기화가 추가됩니다.
반복자는 JDK 1.2에만 추가 된 인터페이스입니다. 또한 해시 맵 및 배열리스트와 같은 컬렉션의 트래버스 인터페이스를 제공합니다. 반복자는 실패한 메커니즘을 지원합니다. 동일한 컬렉션의 내용에서 다중 스레드가 작동하면 실패 이벤트가 생성 될 수 있습니다.