나는 당신이 Iterator과 같은 것을 원한다는 것을 알기 때문에 완벽하게 가능합니다. index >= numbers.length
는하지만이 꽤 많이 나는 이해할 수있는 것과 생각되면 예외를 던져 줘야 getNext()
를 호출
public class IteratorTest{
static int[] numbers = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
static int index = 0;
public static void main(String[] args){
for (int i = 0; i < 10; i++){
System.out.println(getNext());
}
}
public static int getNext(){
return numbers[index++];
}
}
예를 들면 다음과 같습니다이다.
편집
내가 여기 ArrayIterator을 가지고, 나는 위의 코드를보다 교훈이 될 거라 생각 했어요. 반복자의 구현 (@ 데이비드 콘래드는 제안) 흥미있는 경우에, 나는 바로 여기에 하나를 가지고 :
public class ArrayIterator<E> implements Iterator<E>{
private E[] elements;
private int index;
public ArrayIterator(E[] elements){
this.elements = elements;
index = 0;
}
@Override
public boolean hasNext(){
return index < elements.length;
}
@Override
public E next(){
if(!hasNext()){
throw new NoSuchElementException("No more elements in the array.");
}
return elements[index++];
}
@Override
public void remove(){
throw new UnsupportedOperationException("Remove operation is not supported.");
}
}
당신이 배열 위치에 특정 값을 원하는 경우, 예 가능 - 그것은이 같은 상관 없음 전달로 다른 값. 나는 그것이 의미하는 바대로 질문에서 완전히 명확하지 않기 때문에 당신이 언급하고있는 것을 보여주고 싶습니다. – Makoto
질문이 명확하지 않습니다. 구문 _ "각 호출마다 단일 배열 변수 호출"_은 의미가 없습니다. 하나는 배열 변수를 "호출"하지 않습니다. 여러분의 설명에서 아래에 @hvgotcodes에 설명 된 간단한 배열 액세스 루프가 필요할 수도 있지만 배열의 요소, 즉 배열 반복자를 순차적으로 반환하는 메서드를 찾을 수도 있습니다. 무엇 이니? –
일반적으로 예제로 설명하는 것이 좋습니다 ... – Dukeling