2

我在番石榴中有一个多重集,我想检索给定元素的实例数而不迭代这个多重集(我不想迭代,因为我假设迭代需要相当长的时间,因为它会查看所有集合)。

为此,我首先考虑使用 multiset 的 entryset() 方法,以获取具有单个实例及其相应计数的集合。然后,将此集合转换为哈希图(其中键是我的集合的元素,值是它们的实例计数)。因为那时我可以使用 hashmap 的方法直接从它的键中检索一个值 - 完成!但这只有在我可以快速将集合转换为哈希图时才有意义(无需遍历所有元素):这可能吗?

(正如我所说,我希望这个问题在多个方面存在缺陷,如果您能阐明我可能在这里犯的概念错误,我会很高兴。谢谢!)

4

2 回答 2

8

只需在您的多重集上调用count(element)——瞧!

于 2011-10-08T14:40:38.993 回答
4

你可能知道在 GuavaMultiset中是一个接口,而不是一个类。

如果您只想知道元素的重复编号,请调用Multiset.count(Object element).

请忘记我的以下声明:

然后,如果您使用的是流行的实现,那么场景下HashMultiset已经有一个工作了。HashMap<E, AtomicInteger>也就是说,当HashMultiset迭代时,HashMap 也会迭代。无需转换为另一个 HashMap。

于 2011-10-08T05:31:34.063 回答