특정 값으로 매핑 된 모든 키를 반환하는 메소드가있는 java.util.Map의 구현을 찾고 있습니다. 즉, 여러 키가 같은 가치. Google Collections 및 Apache Commons를 살펴본 결과 아무것도 알지 못했습니다. 물론 키 집합을 반복하고 각 해당 값을 확인하거나 두 개의 맵을 사용할 수 있지만 이미 사용할 수있는 것이 있으면 좋겠다.getKeysForValue를 지원하는 Java Map 구현을 찾고 있습니다.
답변
그 해결책이 유용할지 모르겠지만 키와 값의 표준 맵을 사용하고 값에서 키까지 MultiMap을 사용하면 쉽게 구현할 수 있습니다.
맵에서 키를 제거 할 때 두 구조의 동기화를 처리해야합니다. 멀티 맵의 값에 매핑 된 키 세트에서 키 자체를 제거해야합니다 .
구현하기가 어렵지 않습니다. 메모리 오버 헤드 측면에서 약간 무거울 수 있습니다.
여기에 찾고있는 것은 bidirectional map이며 여기에는 commons collections에 구현되어 있습니다.
사실 양방향지도는 작동하지 않습니다. 질문을 명확하게하기 위해 편집했지만 키와 값 사이에는 1 : 1 매핑이 없습니다. – Joel
값 개체에는 모든 키를 보유하는 속성 (ArrayList 유형 일 수 있음)이있을 수 있습니다. 그런 다음 HashMap (또는 사용하는 Map 임 플 래시)을 확장하고 put을 재정의하면 키를 넣고 개체화 할 때 키를 개체의 키 목록에 추가 할 수 있습니다.
여러 키가있는 값을 지원하는 준비가 된 클래스를 찾을 수 없습니다. 그러나 HashMaps 중 하나 대신에 MultiHashMap을 사용하여 Apache Commons DualHashBidiMap을 다시 구현할 수 있습니다.
- 1. Python을 지원하는 온라인 Judge Engine을 찾고 있습니다.
- 2. 특정 Common Lisp 구현을 찾고 있습니다.
- 3. C++에서 이항 트리의 구현을 찾고 있습니다.
- 4. C에서 좋은 SIP 구현을 찾고 #
- 5. 좋은 VBA treemap 구현을 찾고
- 6. CTR 모드에서 AES-256 C# 구현을 찾고 있습니다.
- 7. Java Map 해시 코드
- 8. 구문 강조를위한 Java GUI 구성 요소/아이디어를 찾고 있습니다.
- 9. 오픈 소스 Java 도움말 API를 찾고 있습니다.
- 10. Java - PriorityQueue보다 빠른 것을 찾고 있습니다.
- 11. 자동 완성을 지원하는 SWT/JFace에서 콤보 (뷰어)를 찾고 있습니다.
- 12. SSL을 지원하는 C#에서 pop3 리더 클래스를 찾고 있습니다.
- 13. 캐싱을 지원하는 Nimbb 또는 WebFLVRecorder와 같은 플래시 레코더를 찾고 있습니다.
- 14. Java DefaultStyledDocument 구현을 재정의하십시오.
- 15. VB에서 시뮬레이트 된 어닐링 구현을 찾고
- 16. Java에서 Chromakey 라이브러리를 찾고 있습니다.
- 17. 모호성을 지원하는 Java CFG 파서
- 18. Write-Once + Read-Manyer Java Map?
- 19. 유연한보고 솔루션을 찾고 있습니다.
- 20. kml 파일을 찾고 있습니다
- 21. JQuery에서 메뉴를 찾고 있습니다.
- 22. 객체 데이터베이스를 찾고 있습니다
- 23. 자물쇠가없는 컨테이너를 찾고 있습니다.
- 24. LINQ : 아이디어를 찾고 있습니다
- 25. jQuery 리소스를 찾고 있습니다.
- 26. 2D coverflow를 찾고 있습니다.
- 27. 구조체가 System.Type을 찾고 있습니다.
- 28. 여기서 평균을 찾고 있습니다
- 29. Java : Map 객체의 매개 변수화
- 30. Visual Studio를위한 호스팅 된 vcs를 찾고 있습니다.
감사합니다. 예, 두 개의지도를 사용하는 것에 대해 생각했습니다. 한 맵에 구현 된 것이 있으면 좋겠지 만 두 맵을 동기화 상태로 유지하는 것에 대해 걱정할 필요는 없습니다. – Joel
구현이 존재하지 않는 것처럼 보이므로 이것이 가장 좋은 방법입니다. – Joel