在MultiMap中计算出现次数

时间:2014-05-15 04:44:39

标签: java guava multimap

我有一个具有多个相似值的MultiMap:

{Entertainment=[5], Food=[2, 2, 2], Products=[11], Health & Beauty=[3]}

如何统计这些键的总数,使其计算如下?

Entertainment = 1
Food = 3
Products = 1
Health & Beauty = 1

数组中的数字是类别ID,因此Food有3次出现。

3 个答案:

答案 0 :(得分:11)

multimap.get(key).size()multimap.keys().count(key)应该有效。

Documentation

答案 1 :(得分:1)

假设您的地图声明如下:MultiMap<String, Integer> map,您可以执行以下操作:

for (String key : map.keySet()) {
    int count = map.get(key).size();
}

答案 2 :(得分:0)

使用asMap(),您可以获得Map<String, Collection<Integer>>的{​​{1}}表示形式,无需多次查找即可直接从中获取计数:

Multimap

注意:要获取for (Map.Entry<String, Collection<Integer>> entry : multimap.asMap().entrySet()) { System.out.println(entry.getKey() + " = " + entry.getValue().size()); } 上的Set个密钥,您需要致电Multimap keySet()(其中包含重复次数)关键的次数和价值一样多。)