LinkedHashMap.keySet()이 불려 갔을 때, 반환되는 Set의 순서는 키가 추가 된 순서와 같게 될까?Java의 LinkedHashMap은 키 순서를 유지합니까?
답변
예.
참조 : LinkedHashMap는 :
이 연결리스트는 일반적으로 키가 지도 (삽입 순서)에 삽입 된 순서 인 반복 순서를 정의합니다.
과 HashMap#keySet 문서에서
:설정된 때문에지도에 변경 에 세트를 반영,지도에 의해 뒷받침된다 반환, 그 반대의 경우도 마찬가지입니다.
@Tom 고마워, 나는 아직도 이것이 명백하다는 것을 확신하지 못한다. 왜 LinkedHashMap.keySet()은 Set의 하위 클래스를 고정 된 순서로 반환하지 않습니까? – Armand
SortedSet를 돌려 주었기 때문에, LinkedHashMap는, 그 키가 Comparable를 구현하는 형태, 또는 Comparator 함수가 제공되는 필요 조건을 추가하는 것이됩니다. 이것은 Map이 요구하지 않습니다. SortedSet 설명서를 확인하십시오. http://download.oracle.com/javase/6/docs/api/java/util/SortedSet.html. 이 요구 사항을 갖지 않으면 LinkedHashMap에서 Comparable을 구현하지 않는 짝수 키를 사용할 수 있습니다. 이는보다 일반적인 경우입니다. LinkedHashMap의 구현은, 그 키가 Comparable 인 경우에서도 SortedSet를 돌려 줄지도 모릅니다 만, 간단하게 REQUIRED는 필요 없습니다. –
물론 LinkedHashMap의 계약에 따르면 자연 주문이 아닌 INSERTION 주문이 유지됩니다. 따라서이 경우 SortedSet은 전혀 작동하지 않을 것입니다. 키는 단순히 그 방식으로 정렬되지 않습니다. –
Yes. 단, 키가 다시 삽입되면 키가 처음 삽입 된 순서대로 나타납니다.
+1 그 코너 케이스에 잘 잡습니다. –
사실, 키가 ** 재 삽입 **되었을 때 예외는 삭제되지 않고 재사용되지 않습니다.이 경우는 이미 맵에있는 키에 대해'put (key, value)'를 호출 할 때입니다. (javadoc이이를 명확하게 설명합니다.) –
- 1. URLEncodedUtils.parse()가 순서를 유지합니까?
- 2. 배열이나 목록의 항목이 순서를 유지합니까?
- 3. Array.sort()는 가능한 경우 배열의 순서를 유지합니까?
- 4. LinkedHashMap은 링크 된 Set을 반환합니까?
- 5. Qt QSettings가로드되면 메모리에 키/값을 유지합니까?
- 6. 두 요소의 키가 서로 같으면 std :: multimap이 삽입 순서를 유지합니까?
- 7. 데이터 파일로 내보내는 동안 bcp out이 행 순서를 유지합니까?
- 8. MSBuild 파일의 항목은 작업으로 전달 될 때 순서를 유지합니까?
- 9. SQLAlchemy는 기본 키 열에 어떤 순서를 사용합니까?
- 10. java의 공개 키 암호화에 대한 자습서가 있습니까?
- 11. Java의 알려진 매개 변수로 RSA 키 만들기
- 12. Java의 다른 창에서 키 스트로크를 어떻게 기록합니까?
- 13. Java의 단축키
- 14. 파일롯 : request.params에서 순서를 유지 하시겠습니까?
- 15. HashMap은 다음 읽기에서 요소의 순서를 유지하며 LinkedHashMap으로 작성되고 채워지는 경우?
- 16. NSMenuItem -setTarget : 대상을 유지합니까?
- 17. Tomcat 세션을 어떻게 유지합니까?
- 18. NSURLConnection은 델리게이트를 유지합니까?
- 19. beginAnimations commitAnimations는 뷰를 유지합니까?
- 20. CFDictionaryValueCallBacks는/release를 유지합니까?
- 21. IE9는 "호환성보기"버튼을 유지합니까?
- 22. HBase에서 Java의 한 행 (행 키 이름 바꾸기)을 복사합니다.
- 23. 일치하는 순서를 % /?
- 24. Java의 Collections.shuffle이 무엇을하고 있습니까?
- 25. Java의 명령 행 인터페이스
- 26. Java의 toLowerCase()는 원래 문자열 길이를 보존합니까?
- 27. Apache에서 세션 상태를 어떻게 유지합니까?
- 28. Windows 양식에서 세션을 어떻게 유지합니까?
- 29. SQL Server는 어떻게 연결을 유지합니까?
- 30. nav 모드의 창 구성을 유지합니까?
PHP에서 오는 사람들은 LinkedHashMap이 PHP 배열과 매우 흡사하다는 것을 지적하여 도움을 받겠습니다. –