자바의 정석 - Iterator, Enumeration, Map과 Iterator

Yohan·2024년 2월 9일
0
post-custom-banner

Iterator, ListIterator, Enumeration

  • Collection에 저장된 데이터를 접근하는 데(읽어오는 데) 사용되는 인터페이스
  • Enumeration은 Iterator의 구버전
  • ListIterator는 Iterator의 접근성을 향상시킨 것(단 -> 양방향)
  • Iterator가 가장 중요! 나머지는 그닥

Iterator

  • Collection에 저장된 요소들을 읽어오는 방법을 표준화한 것
    1. boolean hasNext() - 읽을 요소가 남아있는지 확인
    2. Object next() - 다음 요소를 읽어옴
  • 컬렉션에 iterator()를 호출해서 구현한 객체를 얻어서 사용
List list = new ArrayList(); // 다른 컬렉션으로 변경할 때는 이 부분만 고침
Iterator it = list.iterator();

while(it.hasNext()) { // 읽어올 요소가 있는지 확인
	System.out.println(it.next()); // 요소 읽기
}
  • 실습
class Ex1 {
	public static void main(String[] args) {
		ArrayList list = new ArrayList();
		list.add("1");
		list.add("2");
		list.add("3");
		list.add("4");
		list.add("5");
		
		Iterator it = list.iterator();
		
		while(it.hasNext()) {
			Object obj = it.next();
			System.out.println(obj);
		}
		
		// iterator는 일회용이라 다쓰고나면 다시 얻어와야 한다.
		it = list.iterator();
			
		while(it.hasNext()) {
			Object obj = it.next();
			System.out.println(obj);			
		}
	}
}

Map과 Iterator

  • Map에는 iterator()가 없다.
    -> Map은 Collection의 자손이 아니기 때문에
  • KeySet(), entrySet(), values()를 호출해야 사용가능
Map map = new HashMap();

Iterator it = map.entrySet().iterator();
profile
백엔드 개발자
post-custom-banner

0개의 댓글