2017-05-21 2 views
-2

링크드리스트를 탐색/편집 할 수있는 많은 기능을 제공하는 ListIterator의 API를 읽고있었습니다. 하지만 내 질문에 요소를 색인화하기 위해 get() 메서드를 사용할 수 있다면 목록을 통해 앞뒤로 탐색하려면 ListIterator이 필요합니다.ListIterator가 필요한 이유는 무엇입니까?

+2

색인으로 연결된 목록의 요소에 액세스하는 것은 'O (n)'작업입니다. 추측으로'ListIterator'는 당신이 간단한 반복을 수행하고 있다는 것을 알고 있으므로 다음 노드'O (1)'시간을 가져올 수 있습니다. – CollinD

+0

@CollinD 응답 해 주셔서 감사합니다. 저는 계산상의 복잡성에 대해 생각하지 않았습니다. 잘했다! – computer

답변

1

Iterator과 추가 API가 필요한 것과 같은 이유로 이터레이터는 목록에서 앞뒤로 이동하는 가장 좋은 방법을 알고 있습니다. 이 경우에 당신이하는 것보다 낫습니다. List.get(int index)은 연결된 목록에서 O (N)입니다. 링크를 추적하는 것은 O (1)입니다.

관련 문제