ImmutableSortedMultiset

ImmutableSortedMultiset

我正在努力使用Guava ImmutableSortedMultiset执行基本操作...


一个人如何创建一个包含一个新元素的现有ImmutableSortedMultiset的副本?
如何在其中一个元素已被删除的情况下创建现有ImmutableSortedMultiset的副本?


如果可能的话,我希望能够在每次添加(删除)新元素时不对现有集合进行排序就执行这些操作。

最佳答案

我认为如果不重建新的ImmutableSortedMultiset就无法做到。假设您有一个original多重集,我将从使用Multiset中的方法制作一个复合视图开始:

// View with one more element
Multiset<String> view = Multisets.union(original, ImmutableMultiset.of("a"));


要么

// View with one less element
Multiset<String> view = Multisets.difference(original, ImmutableMultiset.of("a"));


然后创建不可变的排序副本:

ImmutableSortedMultiset<String> copy = ImmutableSortedMultiset.copyOf(view);

10-04 12:42