2014-12-12 3 views
1

표준 라이브러리 LinkedHashSet은 삽입 순서 반복을 제공하는 HashSet입니다. Guava의 BiMap 버전이 키와 값의 삽입 순서 반복을 유지합니까? BiMap이 변경 가능해야하므로 ImmutableBiMap으로 충분하지 않습니다.예측 가능한 반복 순서 (삽입 순서)가있는 BiMap 구현이 있습니까?

+2

어째서 삽입 순서를 정의해야합니까? 열쇠를 가져 가야합니까? – fge

+0

키 순서를 받아 들일 수 있지만 키와 값을 함께 넣으면 다른 키 아래에 기존 값을 넣으려고하면 예외가 throw되므로 실제 차이가 없다고 생각합니다. –

+0

당신은 guava의 bimap 인터페이스를 두 개의 연결된 해시 맵을 사용하여 구현할 수 있습니다. 아마도 그렇게하기는 어렵지 않을 것입니다. –

답변

2

유일한 구현은 ImmutableBiMap<K,V>입니다. 구현을 확인할 수 있습니다 here. LinkedHashMap을 사용하고 copyOf(Map<? extends K,? extends V> map)으로 변환하면 ImmutableBiMap<K,V>이됩니다. 그것은 당신을 위해 일할 것인가?

+0

감사하지만 도움이되지 않습니다. BiMap을 사용하기 쉽도록하고 싶지만 변경할 수 있어야합니다. 다른 수집 유형 (또는 유형, 예를 들어 두 개의지도)을 유지하면 BiMap이 전혀 필요하지 않습니다. –

+0

Ok Jake가 있지만 구아바 솔루션이 없습니다. 죄송합니다. –