2011-12-10 3 views
-5

hasNext(), next()remove() 메쏘드가 정의되어있는 자바 클래스 반복자 인터페이스가 구현 된 인터뷰에서 질문을 받았습니다.Java 클래스 java.util.Iterator 인터페이스가 구현 되었습니까?

알려 주시기 바랍니다. 이것은 중요한 것으로 보인다. (; 컬렉션의 Iterable IFC을 확장 목록 컬렉션 IFC를 확장 곳 목록 인터페이스를 구현하여)

+6

API 문서를 확인해 보셨습니까? 주어진 인터페이스를 구현하는 클래스를 나열합니다. –

답변

0

java.util.AbstractList의 Iterable 인터페이스의 구현을 제공하는 추상 클래스입니다.

AbstractList는 내부 클래스 private class Itr을 구현하며 Iterator 인터페이스를 구현합니다. 여기에는 hasNext(), next() 메소드의 구현을 제공하는 수단이 있습니다. 그래서 iterator() :: AbstractList 메서드는 해당 컬렉션에서 트래버스하기 위해 new Itr() 개체를 제공하고 있습니다.

ArrayList, Vector는 모두 iterator() :: AbstractList API에 대해 본질적으로 액세스 권한을 갖고 새로운 Iterator 객체를 반환하는 AbstractList의 하위 클래스입니다.

Simalarly for Set; AbstractCollection은 반복자 구현을위한 추상 클래스입니다.

우리는이 우리가 두 방향으로 컬렉션을 통과 할 수 에 java.util.AbstractList
class ListItr extends Itr implements ListIterator
을 하나 이상의 내부 클래스가 않습니다.

2

반복자 인터페이스 java.util.AbstractList, http://docs.oracle.com/javase/1.5.0/docs/api/java/util/AbstractList.html구현된다. 문서의 설명은 다음과 같습니다. "다른 추상 콜렉션 구현과 달리, 프로그래머는 반복 구현을 제공 할 필요가 없으며, 반복자 및리스트 반복자는이 클래스에서"임의 액세스 "메소드 위에 구현됩니다. get () INT 인덱스), 세트 (INT 인덱스 오브젝트 소자), 세트 (INT 인덱스 오브젝트 요소) (INT 인덱스 오브젝트 소자)를 첨가하고, 지능 지수 (제거. "

있어서 반복기()을 리스트의 요소에 대한 반복자를 반환합니다. 또한 AbstractList : Vector, ArrayList를 확장하는 클래스에서이 메서드를 볼 수 있습니다.

+1

이것은 1 년 전 @Kanagavelu Sugumar가 제공 한 다른 답변과 매우 유사합니다.이 대답이 어떻게 추가됩니까? – Krease

+0

AbstractList는 Iterator 인터페이스를 구현하지 않습니다. Iterable 인터페이스를 구현합니다. only iterator() :: Iterable.java 반환 유형은 Iterator입니다. –

관련 문제