순회하여 데이터를 조건별로 수정 또는 삭제할 것이 있다면 iterator, 단순 데이터 조회 시에는 for-each를 사용하는 것이 가독성 측면에서 좋다.
자바 collection framework에 속해있는 인터페이스 중 하나.
itertor을 구현한 클래스는 collection객체를 탐색, 데이터 접근, 삭제 가능
선언 및 사용 방법
List<Integer> list = new ArrayList<>();
list.add(1);
...
Iterator<Integer> iter = list.Iterator(); // 리스트에 저장된 값을 iterator로 할당
while(iter.hasNext()) {
iter.next(); // iterator에 저장된 값 꺼내오기
}
List<Integer> list = new ArrayList<>();
list.add(1);
...
while(int i : list) {
i // list에 저장된 값 바로 사용 가능
}
차장님께서 회사 공통은 대부분 iterator을 쓰는데 왜 for-each로 반복문을 작성하냐고 하셨다
참고자료
[Iterator 와 For-each 비교] https://erinyees.tistory.com/21
[보일러플레이트 코드란?(Boilerplate code)] https://charlezz.medium.com/%EB%B3%B4%EC%9D%BC%EB%9F%AC%ED%94%8C%EB%A0%88%EC%9D%B4%ED%8A%B8-%EC%BD%94%EB%93%9C%EB%9E%80-boilerplate-code-83009a8d3297
[[Java] 자바에서 ConcurrentModificationException이 발생하는 이유와 해결방법 | Map.keySet()] https://jelong.tistory.com/entry/Java-%EC%9E%90%EB%B0%94%EC%97%90%EC%84%9C-ConcurrentModificationException%EC%9D%B4-%EB%B0%9C%EC%83%9D%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0%EC%99%80-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95-MapkeySet
[[Java] Iterator, Iterable, for-each 각각의 특징] https://soyeondev.tistory.com/60