각 해시 값에 대해 (해시 기반) Multiset을 사용하여 해시 기반 Multimap을 만들려고합니다. 값에 대한 HashMultiset을 사용하는 멀티 맵
System.out.println(mmap.get("1") instanceof Multiset<?>);
//false, the returned collection is not a HashMultiset,
//but a (private) WrappedCollection
이 그래서 내가 만든 MULTISET에 액세스 할 수없는 것,
Multimap<Object, Object> mmap = Multimaps.newMultimap(
Maps.<Object, Collection<Object>>newHashMap(),
new Supplier<Collection<Object>>() {
public Collection<Object> get() {
return HashMultiset.create();
}
});
mmap.put("1", "2");
그러나 다음 예를 참조하십시오? 나는 이것을 Multiset (Multisets.unmodifiableMultiset()에 싸서)으로 반환 할 수 있기를 원했습니다. 매번 새로운 Multiset으로 복사하고 싶지 않습니다. Map<K, Multiset<V>>
으로 다시 전환하고 내 코드에 Multimap
이 제거해야하는 복잡성을 추가하는 것 외에 다른 옵션이 있습니까?
오, 그게 내가 의심했던 것입니다. 어쨌든 고마워요. 나는 정확히 무엇을 요구할 지 확신하지 못한다. (항상 그것을 얻을 위험이 있기 때문에 :)). 추신 : 당신은 너무 비밀 스럽습니다! –
나는 이것을 너무 좋아한다. 지난 4 년 동안 일어날 가능성은 없습니까? –
아아, 아니, 이전에 우리가 공개 할 수 있다고 생각했던 특정 솔루션에 대한 믿음을 잃었습니다. –