我正在努力使用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);