없음 반복자는 문서는 특히의 LinkedHashMap 및 LinkedHashSet의의 LinkedHashMap 및 LinkedHashSet의
모두 내가 왜이 이해가 안
의 모든 항목을 통해 이중의 링크리스트를 보관 유지한다고하지만 구현은, ListIterator를 돌려 주어 다음 및 전의 탐색을 실시하지 않습니다. 후드의 한계를 알고있는 사람이 있습니까?
없음 반복자는 문서는 특히의 LinkedHashMap 및 LinkedHashSet의의 LinkedHashMap 및 LinkedHashSet의
모두 내가 왜이 이해가 안
의 모든 항목을 통해 이중의 링크리스트를 보관 유지한다고하지만 구현은, ListIterator를 돌려 주어 다음 및 전의 탐색을 실시하지 않습니다. 후드의 한계를 알고있는 사람이 있습니까?
반복자는 반복자의 현재 위치에 "그들을 통해 삽입의 가능성을 열어 ... 여기 map.entrySet().iterator()
입니다 ". 그러나 LinkedHashMap/Set 자체가 부과하는 순서는 목록 순서가 삽입 순서와 완전히 동일하므로 중단됩니다.
컬렉션이 아닌 키/값 쌍의 데이터 구조를 통해 직접적으로 반복 할 수 없습니다. 내부적으로 삽입 순서를 기억하는 이중 연결 목록이 있어도 여전히 반복기를 표준 방식으로 가져와야합니다.
반복자를 얻을 수있는 keySet()
, values()
, entrySet()
키, 값 또는 항목 (키 + 값)의 콜렉션을 반환하는 메소드가 있습니다. 나는이 세트입니다 동의 순서가 기술적으로 지정되지 않은 비록
아마 당신이 원하는 것은
합리적으로 들리지만 LinkedList가 ListIterator를 반환한다는 것이 혼란 스럽습니다. 언급하고있는 구조와 마찬가지로 LinkedList는 이중 링크되어 원래의 삽입 순서를 유지해야합니다. – DED
아니요. LinkedList를 사용하면 지정된 위치에 삽입 할 수 있습니다. –
LinkedHashMap/Set은 List 인터페이스를 구현하기 때문에 보았습니다. 이중 링크는 역방향 반복기를 가져올 때 유용합니다. – DED