繁体   English   中英

番石榴ImmutableSortedSetMultimap?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM