boolean hasMoreElements()
Object nextElement()
다음 요소 읽기
hasMoreElements()
로 먼저 확인하고 -> nextElement()
✨✨사용법 : CF_12에 Ex11_19 확인
Iterator의 접근성으 향상시킨 것(단방향 -> 양방향)
previous()
: 이전요소 읽기
컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것
-> List/Set/Map 마다 각자 읽어오는 방법이 다른데 이걸 표준화!!
-> 도중에 컬렉션을 바꿔도 코드를 일일이 바꾸지 않아도 된다!!
✨컬렉션에 iterator()
를 호출해서 Iterator를 구현한 객체를 얻어서 사용
iterator()
: Collection 인터페이스의 메소드이며, List & Set 인터페이스는 그 자손이므로, iterator()
를 사용할 수 있고, Iterator를 구현한 객체를 얻어서 사용한다!!!!List list = new ArrayList(); //다른 컬렉션으로 변경할 땐 우항만 고치면 됨!!! Iterator it = list.iterator(); //Iterator 객체를 반환 // while(it.hasNext()) { //확인 System.out.println(it.next()); //읽어오기 }
boolean hasNext()
Object next()
컬렉션의 다음 요소 읽기
✨✨hasNext()
로 먼저 확인하고 -> next()
ex11_05
import java.util.*;
public class Ex11_05 {
public static void main(String[] args) {
Collection c = new HashSet();
//***좌항에 Collectoin으로(더높은조상) 하면 우항에 어떤 자손이든 가능
//아래의 코드를 바꿀 필요없다
c.add("1");
c.add("2");
c.add("3");
c.add("4");
c.add("5");
Iterator it = c.iterator();//****
while(it.hasNext()) {//요소 있는지 확인
Object obj = it.next();
System.out.println(obj);
}//끝까지 읽음
//iterator()는 1회용이라 다쓰고나면 다시 얻어와야 한다.
it = c.iterator();//****
while(it.hasNext()) {//요소 있는지 확인
Object obj = it.next();
System.out.println(obj);
}//끝까지 읽음
final int SIZE = list.size();
for(int i=0; i<SIZE; i++) {
Object obj = list.get(i);
System.out.println(obj);
}//이렇게 가능은 하나, 위에 컬렉션을 바꾸면 사용하지 못한다.
}
}
1
2
3
4
5
1
2
3
4
5
keySet()
, entrySet()
, values()
를 호출해야 한다!!Map map = new HashMap();
..
Iterator it = map.entrySet().iterator();
마지막 줄은 다음 두 줄을 한줄로 만든 것!
Set eSet = map.entrySet();
Iterator it = eSet.iterator();