1. Enumeration, Iterator, ListIterator
- 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스이다.
- Enumeration < Iterator < ListIterator
2. Iterator
- 컬렉션 클래스에 저장된 요소들을 나열하는 방법을 제공한다.
- 컬렉션 클래스에 iterator()를 호출해서 Iterator를 구현할 객체를 얻는다.
- 컬렉션 인터페이스에 정의된 메서드이므로 컬렌션 인터페이스의 자손인 List와 Set에도 포함되어 있고, iterator()가 각 컬렉션의 특징에 알맞게 작성되어 있다.
반환형 |
메서드 |
설명 |
boolean |
hasNext() |
읽어 올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환한다. |
Object |
next() |
다음 요소를 읽어 온다. next()를 호출하기 전에 hasNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전하다. |
void |
remove() |
next()로 읽어 온 요소를 삭제한다. next()를 호출한 다음에 remove()를 호출해야한다. (선택적 가능) |
import java.util.ArrayList; import java.util.Iterator; public class IteratorTest { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); Iterator iterator = list.iterator(); while (iterator.hasNext()) { Object obj = iterator.next(); System.out.println(obj); } // while } // main } // IteratorTest /* * * 결과 * * 1 * 2 * 3 * 4 * 5 * */
3. Enumeration
- 컬렉션 프레임웍이 만들어지기 이전에 사용하던 것이다.
- 이전 버전으로 작성된 소스와의 호환을 위해서 남겨두고 있을 뿐이다.
반환형 |
메서드 |
설명 |
boolean |
hasMoreElements() |
읽어 올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환한다. Iterator의 hasNext()와 같다. |
Object |
nextelement() |
다음 요소를 읽어 온다. nextElement()를 호출하기 전에 hasMoreElements()를 호출해서 읽어올 요소가 남아있는지 확인하는 것이 안전하다. Iterator의 next()와 같다. |
4. ListIterator
- Iterator를 상속받아서 기능을 추가한 것이다.
- 컬렉션의 요소에 접글할 때 Iterator는 단방향으로만 이동할 수 있는데 반해 ListIterator는 양방향으로의 이동이 가능하다.
- 단, List인터페이스를 구현한 컬렉션에서만 사용할 수 있다.
반환형 |
메서드 |
설명 |
void |
add(Object o) |
컬렉션에 새로운 객체(o)를 추가한다.(선택적 가능) |
boolean |
hasNext() |
읽어 올 다음 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환한다. |
boolean |
hasPrevious() |
읽어 올 이전 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환한다. |
Object |
next() |
다음 요소를 읽어온다. next()를 호출하기 전에 hasNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전하다. |
Object |
previous() |
이전 요소를 읽어온다. previous()를 호출하기 전에 hasPrevious()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전하다. |
int |
nextIndex() |
다음 요소의 index를 반환한다. |
int |
previousIndex() |
이전 요소의 index를 반환한다. |
void |
remove() |
next() 또는 previous()로 읽어 온 요소를 삭제한다. 반드시 next()나 previous()를 먼저 호출한 다음에 호출해야 한다. |
void |
set(Object o) |
next() 또는 previous()로 읽어 온 요소를 지정된 객체(o)로 변경한다. 반드시 next()나 previous()를 먼저 호출한 다음에 호출해야 한다. |
import java.util.ArrayList; import java.util.ListIterator; public class ListIteratorTest { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); ListIterator iterator = list.listIterator(); while (iterator.hasNext()) { System.out.print(iterator.next()); // 순방향 } // while System.out.println(); while (iterator.hasPrevious()) { System.out.print(iterator.previous()); // 역방향 } // while } // main } // IteratorTest /* * * 결과 * * 12345 * 54321 * */
'Java > Java SE' 카테고리의 다른 글
Java JDBC(Java DataBase Connectivity) (0) | 2013.09.13 |
---|---|
Java 소켓 프로그래밍 (11) | 2013.08.30 |
Java 네트워킹(Networking) (0) | 2013.08.30 |
Java 쌍따움표 안에 쌍따움표 처리 (0) | 2013.08.29 |
Java JDBC SWING 프로그래밍 예제 - 성적관리 (9) | 2013.08.24 |