JavaTM Platform
Standard Ed. 6

java.util
인터페이스 ListIterator<E>

모든 슈퍼 인터페이스:
Iterator <E>


public interface ListIterator<E>
extends Iterator <E>

리스트의 반복자에 의해, 프로그래머가 몇개의 방향으로 리스트를 횡단(traverse) 해, 반복 처리시로 리스트를 변경해, 반복자의 현재의 위치를 리스트로 취득할 수가 있습니다. ListIterator 에는 현재의 요소가 없습니다. 그 커서 위치는,previous() 의 호출에 의해 반환된 요소와next() 의 호출에 의해 반환된 요소와의 사이에 항상 있습니다. 길이 n 의 리스트의 반복자는, 다음의 caret (^)로 나타나는 것 같은,n+1 개의 가능한 커서 위치를 가집니다.

Element(0)   Element(1)   Element(2)   ...Element(n-1)
커서의 위치:  ^            ^            ^            ^                  ^
 
remove() 메소드와 set(Object) 메소드는, 커서 위치에 따라서는 정의되지 않습니다. 이러한 메소드는,next() 또는 previous() 의 호출에 의해 반환된 마지막 요소를 처리하기 위해서 정의됩니다.  

이 인터페이스는,Java Collections Framework 의 멤버입니다.

도입된 버젼:
1.2
관련 항목:
Collection , List , Iterator , Enumeration , List.listIterator()

메소드의 개요
 void add (E  e)
          지정된 요소를 리스트에 삽입합니다 (임의의 오퍼레이션).
 boolean hasNext ()
          리스트를 순서 방향으로 횡단(traverse) 했을 때에, 리스트 반복자가 한층 더 요소를 가지고 있는 경우에 true 를 돌려줍니다.
 boolean hasPrevious ()
          리스트를 역방향으로 횡단(traverse) 했을 때에, 리스트 반복자가 한층 더 요소를 가지고 있는 경우에 true 를 돌려줍니다.
 E next ()
          리스트내의 다음의 요소를 돌려줍니다.
 int nextIndex ()
          다음에 next 를 호출했을 때에 돌려주어지게 되는 요소의 인덱스를 돌려줍니다.
 E previous ()
          리스트의 전의 요소를 돌려줍니다.
 int previousIndex ()
          다음에 previous 를 호출했을 때에 돌려주어지게 되는 요소의 인덱스를 돌려줍니다.
 void remove ()
          next 또는 previous 에 의해 반환된 마지막 요소를 리스트로부터 삭제합니다 (임의의 오퍼레이션).
 void set (E  e)
          next 또는 previous 로부터 마지막에 반환된 요소가 지정된 요소로 옮겨놓습니다 (임의의 오퍼레이션).
 

메소드의 상세

hasNext

boolean hasNext()
리스트를 순서 방향으로 횡단(traverse) 했을 때에, 리스트 반복자가 한층 더 요소를 가지고 있는 경우에 true 를 돌려줍니다. 즉,next 의 호출이 예외를 throw 하는 일 없이 요소를 돌려주는 경우는,true 를 돌려줍니다.

정의:
인터페이스 Iterator <E > 내의 hasNext
반환값:
리스트를 순서 방향으로 횡단(traverse) 했을 때에, 리스트 반복자가 한층 더 요소를 가지고 있는 경우는 true

next

E  next()
리스트내의 다음의 요소를 돌려줍니다. 이 메소드는, 리스트를 반복하기 위해서 반복해 불려 가는 경우와 전후로 이동하기 위해서(때문에) previous 의 호출과 짜 합쳐지는 경우가 있습니다. nextprevious 의 호출을 교대로 실시하면, 반복해 같은 요소가 돌려주어집니다.

정의:
인터페이스 Iterator <E > 내의 next
반환값:
리스트의 다음의 요소
예외:
NoSuchElementException - 반복 처리로 다음의 요소가 없는 경우

hasPrevious

boolean hasPrevious()
리스트를 역방향으로 횡단(traverse) 했을 때에, 리스트 반복자가 한층 더 요소를 가지고 있는 경우에 true 를 돌려줍니다. 즉,previous 의 호출이 예외를 throw 하는 일 없이 요소를 돌려주는 경우는,true 를 돌려줍니다.

반환값:
리스트를 역방향으로 횡단(traverse) 했을 때에, 리스트 반복자가 한층 더 요소를 가지고 있는 경우는 true

previous

E  previous()
리스트의 전의 요소를 돌려줍니다. 이 메소드는, 리스트를 역방향으로 반복하기 위해서 반복해 불려 가는 경우와 전후로 이동하기 위해서(때문에) next 의 호출과 짜 합쳐지는 경우가 있습니다. nextprevious 의 호출을 교대로 실시하면, 반복해 같은 요소가 돌려주어집니다.

반환값:
리스트의 전의 요소
예외:
NoSuchElementException - 반복 처리로 전의 요소가 없는 경우

nextIndex

int nextIndex()
다음에 next 를 호출했을 때에 돌려주어지게 되는 요소의 인덱스를 돌려줍니다. 리스트 반복자가 리스트의 말미에 있는 경우는 리스트의 사이즈를 돌려줍니다.

반환값:
다음에 next 를 호출했을 때에 돌려주어지게 되는 요소의 인덱스. 리스트 반복자가 리스트의 마지막에 있는 경우는 리스트의 사이즈

previousIndex

int previousIndex()
다음에 previous 를 호출했을 때에 돌려주어지게 되는 요소의 인덱스를 돌려줍니다. 리스트 반복자가 리스트의 선두에 있는 경우는 -1 을 돌려줍니다.

반환값:
다음에 previous 를 호출했을 때에 돌려주어지게 되는 요소의 인덱스. 리스트 반복자가 리스트의 선두에 있는 경우는 -1

remove

void remove()
next 또는 previous 에 의해 반환된 마지막 요소를 리스트로부터 삭제합니다 (임의의 오퍼레이션). 이 호출은 next 또는 previous 가 호출할 것에 1 회만 실시할 수가 있습니다. 이 호출은, 전회의 next 또는 previous 의 호출해 이후에 ListIterator.add 가 불려 가지 않은 경우에만 실시할 수가 있습니다.

정의:
인터페이스 Iterator <E > 내의 remove
예외:
UnsupportedOperationException - remove 오퍼레이션이 이 리스트 반복자로 지원되지 않는 경우
IllegalStateException - next,previous 의 어느쪽이나 불려 가지 않은 경우, 혹은 next 또는 previous 의 마지막 호출 후에 remove 또는 add 가 불려 갔을 경우

set

void set(E  e)
next 또는 previous 로부터 마지막에 반환된 요소가 지정된 요소로 옮겨놓습니다 (임의의 오퍼레이션). 이 호출은, 전회의 next 또는 previous 의 호출해 이후에 ListIterator.removeListIterator.add 의 어느쪽이나 불려 가지 않은 경우에만 실시할 수가 있습니다.

파라미터:
e - next 또는 previous 로부터 마지막에 반환된 요소를 옮겨놓는 요소
예외:
UnsupportedOperationException - set 오퍼레이션이 이 리스트 반복자로 지원되지 않는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
IllegalArgumentException - 지정된 요소가 있는 측면이 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
IllegalStateException - next,previous 의 어느쪽이나 불려 가지 않은 경우, 혹은 next 또는 previous 의 마지막 호출 후에 remove 또는 add 가 불려 갔을 경우

add

void add(E  e)
지정된 요소를 리스트에 삽입합니다 (임의의 오퍼레이션). 요소는,next 에 의해 반환되는 다음의 요소가 있으면 그 요소의 직전, 및 previous 에 의해 반환되는 다음의 요소가 있으면 그 요소의 직후에 삽입됩니다. 리스트에 요소가 없는 경우는, 새로운 요소가 리스트의 유일한 요소가 됩니다. 새로운 요소는, 암묵의 커서의 전에 삽입됩니다. 후속의 next 의 호출은 영향을 받지 않고, 후속의 previous 의 호출은 새로운 요소를 돌려줍니다. 이 호출은,nextIndex 또는 previousIndex 의 호출에 의해 반환되는 값을 1 늘립니다.

파라미터:
e - 삽입되는 요소
예외:
UnsupportedOperationException - add 메소드가 이 리스트 반복자로 지원되지 않는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
IllegalArgumentException - 이 요소가 있는 측면이 원인으로, 이 리스트에 이 요소를 추가할 수 없는 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.