[英]Guava ImmutableSortedSetMultimap?
Google Guava有一个SortedSetMultimap
。 精彩。 现在哪里是不可变版本? 存在ImmutableSetMultimap
。 但是ImmutableSortedSetMultimap
怎么样? (请不要回复“你为什么想要一个?”)
它实际上不会实现SortedSetMultimap
,但是ImmutableSetMultimap.Builder
有一个你可以使用的orderValuesBy(Comparator)
方法,它具有值集合是ImmutableSortedSet
的效果。
如果你不需要Multimap
的补充含义,你就有间接的方法(我在SO中写了代码,所以它可能不起作用,但想法就在那里):
SortedSetMultimap<K,V> set = ...;
ImmutableMap<K, ImmutableSortedSet<V>> result = ImmutableMap.copyOf(Maps.transform(set.asMap(), new Function<SortedSet<V>, ImmutableSortedSet<V>>() {
public ImmutableSortedSet<V> apply(SortedSet<V> s) {
return ImmutableSortedSet.copyOf(s);
}
});
即:将SortedSetMultimap
转换为Map<K,SortedSet<V>>
,然后转换为Map<K,ImmutableSortedSet<V>>
,然后转换为ImmutableMap
。
我不太了解Guava,但由于ImmutableSetMultimap
是不可变的,因此复制集的排序可能仍然存在:这意味着完全不需要ImmutableSortedSetMultimap
进行导航/迭代(除非您需要SortedSet
特定方法)。
我一直在寻找这个并且刚刚发现了这个: Multimaps.unmodifiableSortedSetMultimap()
不完全是我们想要的,但在我的情况下足够好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.