개발일지/Java
Java Iterator
E-room
2022. 9. 17. 16:43
728x90
Iterator
Collection에 저장된 요소들을 순차적으로 읽어오는 역할 (List, Set)
메서드 | 설명 |
hasNext() | 읽어올 객체가 남아 있으면 true를 리턴하고, 없으면 false를 리턴합니다. |
next() | 컬렉션에서 하나의 객체를 읽어옵니다. 이 때, next()를 호출하기 전에 hasNext()를 통해 읽어올 다음 요소가 있는지 먼저 확인해야 합니다. |
remove() | next()를 통해 읽어온 객체를 삭제합니다. next()를 호출한 다음에 remove()를 호출해야 합니다. |
List에서 String 객체 반복
ArrayList<String> list = ...;
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) { // 읽어올 다음 객체가 있다면
String str = iterator.next(); // next()를 통해 다음 객체를 읽어옵니다.
...
}
Iterator를 사용하지 않더라도 for-each로 반복할 수 있음
ArrayList<String> list = ...;
for(String str : list) {
...
}
next() 메서드로 가져온 객체를 컬렉션에서 실제로 제거하려면 remove()를 사용한다.
ArrayList<Integer> arr = new ArrayList<>();
for (int i = 0; i < 5; i++) { // 0,1,2,3,4 추가
arr.add(i);
}
Iterator<Integer> iterator = arr.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next()); // 출력
iterator.remove(); // 제거
}
System.out.println()
System.out.println(arr);
// 출력
01234
[] // 실제로 값이 삭제됨
728x90