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
'개발일지 > Java' 카테고리의 다른 글
Java Map<key, value>, HashMap (0) | 2022.09.17 |
---|---|
Java Set<E>, HashSet, TreeSet (0) | 2022.09.17 |
Java List<E>, ArrayList, LinkedList (1) | 2022.09.14 |
Java 컬렉션 프레임워크 (Collection Framework) (0) | 2022.09.14 |
Java 예외 처리 (Exception Handling) (0) | 2022.09.14 |