2014-10-09 5 views
0

없음 반복자는 문서는 특히의 LinkedHashMap 및 LinkedHashSet의의 LinkedHashMap 및 LinkedHashSet의

모두 내가 왜이 이해가 안

의 모든 항목을 통해 이중의 링크리스트를 보관 유지한다고하지만 구현은, ListIterator를 돌려 주어 다음 및 전의 탐색을 실시하지 않습니다. 후드의 한계를 알고있는 사람이 있습니까?

답변

2

반복자는 반복자의 현재 위치에 "그들을 통해 삽입의 가능성을 열어 ... 여기 map.entrySet().iterator()입니다 ". 그러나 LinkedHashMap/Set 자체가 부과하는 순서는 목록 순서가 삽입 순서와 완전히 동일하므로 중단됩니다.

+0

합리적으로 들리지만 LinkedList가 ListIterator를 반환한다는 것이 혼란 스럽습니다. 언급하고있는 구조와 마찬가지로 LinkedList는 이중 링크되어 원래의 삽입 순서를 유지해야합니다. – DED

+0

아니요. LinkedList를 사용하면 지정된 위치에 삽입 할 수 있습니다. –

+0

LinkedHashMap/Set은 List 인터페이스를 구현하기 때문에 보았습니다. 이중 링크는 역방향 반복기를 가져올 때 유용합니다. – DED

0

컬렉션이 아닌 키/값 쌍의 데이터 구조를 통해 직접적으로 반복 할 수 없습니다. 내부적으로 삽입 순서를 기억하는 이중 연결 목록이 있어도 여전히 반복기를 표준 방식으로 가져와야합니다.

반복자를 얻을 수있는 keySet(), values(), entrySet() 키, 값 또는 항목 (키 + 값)의 콜렉션을 반환하는 메소드가 있습니다. 나는이 세트입니다 동의 순서가 기술적으로 지정되지 않은 비록

아마 당신이 원하는 것은