Iterator란?
ArrayList, HashSet과 같은 컬렉션을 반복하는 데 사용할 수 있는 인터페이스 객체
Iterator 인터페이스
public interface Iterator {
boolean hasNext(); // 현재 위치에 객체가 존재하는지 확인해주는 메소드
Object next(); // 다음 객체를 가리키도록 하는 메소드
void remove(); // 현재 위치의 객체를 삭제하는 메소드
}
사용법
import java.util.ArrayList;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
// 컬렉션 생성
ArrayList<String> problems = new ArrayList<>();
problems.add("DFS");
problems.add("BFS");
problems.add("BackTracking");
problems.add("DP");
// iterator 획득
Iterator<String> iterator = problems.iterator();
// while문을 사용한 경우
while(iterator.hasNext())
{
String str = iterator.next();
System.out.println(str);
}
// for-each문을 사용한 경우
for (String str : problems)
{
System.out.println(str);
}
}
}
Iterator가 처음에 가리키는 위치는 해당 리스트의 맨 앞 노드가 아니다.
바로 이전의 아무것도 없는 노드를 가리키므로 next() 메소드를 통해 첫 원소로 이동해야한다.
Iterator도 객체이다.
따라서 상황에 따라 속도를 느리게하는 주범이 될 수 있으므로 이를 고려하여 사용한다.
'JAVA' 카테고리의 다른 글
[JAVA] Map 사용법 (0) | 2023.08.16 |
---|