[Iterator(new)+, ListIterator, Enumeration(old)]
- 컬렉션에 저장된 데이터를 접근하는 데 사용되는 인터페이스
- Enumeration는Iterator의 구버전
- ListIterator는 iterator의 접근성을 향상시킨 것(단방향 - > 양방향)
- 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것(set,map,List)
- 컬렉션에서 iterator()를 호출해서 iterator를 구현한 객체를 얻어서 사용한다.
[실습]
package javajungsuk;
import java.util.ArrayList;
import java.util.Iterator;
public class Java11_4_1 {
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 it = list.iterator();
while(it.hasNext()) {
Object obj = it.next();
System.out.println(obj);
}
}
}
- iterator는 일회용이라 다 쓰고나면 다시 얻어와야 한다.
- 그러나 hashset을 써도 이터레이터는 사용이 가능하다는 장점이 있다.
[hashset을 사용한 경우]
package javajungsuk;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
public class Java11_4_1 {
public static void main(String[] args) {
HashSet list = new HashSet();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
Iterator it = list.iterator();
while(it.hasNext()) {
Object obj = it.next();
System.out.println(obj);
}
// for(int i = 0; i < list.size(); i++) {
// Object obj = list.get(i);
// System.out.println(obj);
//
// }
}
}
[Map과 Iterator]
Map에는 iterator()가 없다. keySet(), entrySet(), values()를 호출해야 한다.
[출처]
'Java > 객체지향' 카테고리의 다른 글
[객체지향][자바의 정석] - 19. Comparator과 Comparable (0) | 2022.01.31 |
---|---|
[객체지향][자바의 정석] - 18. 배열을 다루기 편리한 메서드(static) 제공 (0) | 2022.01.27 |
[객체지향][자바의 정석] - 15. 스택과 큐 (0) | 2022.01.26 |
[객체지향][자바의 정석] - 14. LinkedList (0) | 2022.01.26 |
[객체지향][자바의 정석] - 13. ArrayList (0) | 2022.01.25 |