자바어렵다ㅠ
113
2021-01-10 14:39:53
3
132

Iterator에 대한 정의 질문이있습니다.


현재 컬렉션을 공부하고있으며 독학으로 공부를하다보니 힘든점이있어 질문을하게되었습니다.

Iterator 인터페이스를 사용할떄 왜 사용하는지 그리고 사용의 좋은점? 궁금해서 질문올립니다.

0
  • 답변 3

  • esrse
    1k
    2021-01-10 15:15:53

    iterator는 컬렉션을 순회하고자 할 때 사용합니다.

    iterator 인터페이스를 구현하면, 컬렉션을 한칸씩 전진하고 현재 아이템을 caller한테 반환할 수 있죠.

    예를 들어 linked list를 상상하면, iterator는 linked list head를 가리키고 있습니다. 이때 iterator의 .next() 메서드를 호출하면 linked list의 첫 아이템으로 한칸 전진하고, 현재 아이템을 반환합니다.

    그다음에 또 .next() 메서드를 호출하면 그 다음 아이템으로 한칸 전진하고, 현재 아이템을 반환합니다.


    컬렉션에 있는 전체 아이템을 일괄적으로 평가해서,  배열에 담아서 한 번에 전체를 반환하는 개념과 대조적인 동작입니다.


  • 자바어렵다ㅠ
    113
    2021-01-10 15:38:21

    답변 정말감사합니다!!


  • 개발사
    58
    2021-01-10 16:24:30

    컬렉션 자료구조랑 상관없이 이터레이션 프로토콜을 통해 컬렉션 순회가 가능하다는 점이에요.

    객체지향의 캡슐화라는 관점에서 좋은 디자인 패턴이죠

  • 로그인을 하시면 답변을 등록할 수 있습니다.