2012-03-18 2 views
0

java 소스 API는 jdk6jdk7입니다. 거기에 jdk7ArrayList 클래스에는 Iterator 인터페이스를 구현하는 개인 내부 클래스가 있지만 jdk6에는 아무 것도 없습니다. 심지어 을 찾지 않아도 Iterator 인스턴스를 반환합니다.jdk7 이전에 Java로 구현 된 Iterator 인터페이스

의 인스턴스가 수신되고 Iterator 인터페이스의 메소드가 구현되는 방법은 누구나 jdk7 전에 알려 줄 수 있습니까?

+0

v7 및 v6 ArrayList.iterator() 메소드를 게시하면 찾은 내용을 볼 수 있습니다. – Java42

+0

@ChuckFricano : 미안하지만 당신이 나에게 묻는 것은 무엇입니까? 'javater' 이전에'Iterator'의 구현 클래스를 어디에서 찾을 수 있는지 묻습니다. 왜냐하면'java7'에서'ArrayList' 클래스는'Iterator' 인터페이스를 구현하는 private 내부 클래스를 가지지 만'java6'에서는 그렇지 않습니다 –

+0

Hello Mohammad. ArrayList.iterator() 메소드의 두 버전을보고있는 곳에서 Java 소스 코드의 3 행 또는 4 행을 게시하도록 요청합니다. 그들은 동일해야하지만 당신이 두 가지 다른 구현을 보는 것처럼 들린다. 나는 당신이보고있는 것을보고 싶다. – Java42

답변

3

Java 6에서 iterator 구현 클래스는 AbstractList 클래스의 개인 내부 클래스 (ArrayList의 수퍼 클래스)입니다. 소스 코드에서 식별자 Itr을 검색하십시오.


Java 6 및 Java 7 버전이 다른 이유는 무엇입니까? 음, 자바 7 소스 코드에서이 댓글은 큰 단서는 다음과 같습니다

777  /** 
778  * An optimized version of AbstractList.Itr 
779  */ 
780  private class Itr implements Iterator<E> { 

나는 그 최적화의 본질을 조회 독자에게 맡겨 것이다. (소스 루크 읽기!)

+0

답변 해 주셔서 감사합니다. 'AbstractList'에 구현 된 클래스가'Iterator'인지 알려주시겠습니까? java7에서'ArrayList'도 구현 클래스가'Iterator'입니까? 이것에 대한 필요가 있습니까? –

+0

@MohammadFaisal - 귀하의 의견을 이해할 수 없습니다. –

+0

@MohammadFaisal : 코멘트에서 알 수 있듯이,'ArrayList'는 더 최적화 된 구현을합니다. –

관련 문제