2012-09-02 6 views
1

나는 컬렉션 작업을하고 있습니다. 나를 귀찮게하는 한 가지는 : java.util.Iterator 인터페이스의 메소드 구현은 어디에 있습니까? 어떤 클래스에서 이러한 메소드가 구현됩니까?반복자 (iterator) 메서드 구현

public abstract boolean hasNext(); 
public abstract E next(); 
public abstract void remove(); 

java API의 소스 코드를 검색했지만 이러한 클래스의 구현을 찾지 못했습니다.

+2

예 : http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/java/util/ArrayList.java#ArrayList.Itr – assylias

+0

검색 방법 ? 우리는 JDK 소스 코드로 충분하다. – Jayan

+0

@jayan : java.lang.util 패키지에서 구현 클래스를 검색했습니다. – kTiwari

답변

7

Iterator는 인터페이스이며 Java API 자체에 약 50 개의 구현이 있습니다. 반복자는 반복 객체 유형으로 작성해야하므로, 예를 들어 ArrayList를 반복하려는 경우 iterator() 메소드가 반환하는 반복자 인스턴스는 새로운 Itr 유형입니다. ArrayList의 기본 클래스를 구성하는 java.util.AbstractList 클래스의 구현을 참조하십시오.

0

Iterator를 구현 한 java apis를 검색 할 수 있습니다. 이러한 클래스는 모두 위의 메소드를 구현합니다. jdk 소스 코드를 찾아보십시오. 그것은 당신을 많이 도울 것입니다.

+0

나는이 과정을 이미 거쳤다. – kTiwari

+0

AbstractList에 원하는 것이있다. 당신은 시도 할 수 있습니다. – zhaoyw

+0

iterator를 설명하는 두 개의 내부 클래스가 있습니다. – zhaoyw

0

이클립스를 사용하고 있고 이클립스 자체에서 소스 코드가 구성되어있는 경우.

메소드를 선택하고 Ctrl + T (유형 계층 표시)를 누르면 메소드가 구현 된 모든 클래스를 볼 수 있습니다.

1

구현 된 JDK에는 여러 클래스가 있습니다. ArrayList는 매우 좋은 예입니다. openJDK에서는 code을 사용할 수 있습니다. 그리고 iterator 방법 해상력이다 -이 ITR 개인 클래스는 Iterator<E>를 구현하고 모든 itarator 방법을 정의

public Iterator<E> iterator() { 
     return new Itr(); 
    } 

.