컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스(읽어오기)
메서드 | 설명 |
---|---|
boolean hasNext() | (확인)읽어 올 요소가 남아있는지 확인함 있으면 true, 없으면 false를반환 |
Object next() | (읽기)다음 요소를 읽어옴 next()호출하기 전에 hasNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전 |
void remove() | next()로 읽어 온 요소를 삭제함 next()를 호출한 다음에 remove()를 호출해야 함(선택적 기능) |
void forEachRemaining(Consumer<? super E> action) | 컬렉션에 남아있는 요소들에 대해 지정된 작업(action)을 수행함 람다식을 사용하는 디폴트 메서드(JDK1.8부터 추가) |
메서드 | 설명 |
---|---|
boolean hasMoreElements() | 읽어 올 요소가 남아있는지 확인 있으면 true,없으면 false를 반환 Iterator의 hasNext()와 같음 |
Object nextElement() | 다음 요소를 읽어옴 hasElement()를 호출하기 전에 hasMoreElements()를 호출해서 읽어올 요소가 남아있는지 확인하는 것이 안전함 Iterator의next()와 같음 |
ListIterator는 Iterator의 접근성을 향상시킨 것(단방향->양방향)
컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것
컬렉션에 iterator()를 호출해서 Iterator를 구현한 객체를 얻어서 사용
List list = new ArrayList(); // 다른 컬렉션으로 변경할 때는 이 부분만 고치면 됨
Iterator it = list.iterator();
while(it.hasNext()){ // boolean hasNext() 읽어올 요소가 있는지 확인
System.out.println(it.next()); // Object next() 다음 요소를 읽어옴
}
public interface Collection {
...
public Iterator iterator();
...
}
Map map = new HashMap();
...
Iterator it = map.entrySet(),iterator();