Java 计算多重映射中的出现次数
我有一个具有多个类似值的多重映射:Java 计算多重映射中的出现次数,java,guava,multimap,Java,Guava,Multimap,我有一个具有多个类似值的多重映射: {Entertainment=[5], Food=[2, 2, 2], Products=[11], Health & Beauty=[3]} 如何计算这些键的总数,使其按如下方式计算 Entertainment = 1 Food = 3 Products = 1 Health & Beauty = 1 数组中的数字是类别id,因此食物有3次出现。multimap.get(key).size() 假设您的地图声明如下:MultiMap ma
{Entertainment=[5], Food=[2, 2, 2], Products=[11], Health & Beauty=[3]}
如何计算这些键的总数,使其按如下方式计算
Entertainment = 1
Food = 3
Products = 1
Health & Beauty = 1
数组中的数字是类别id,因此食物有3次出现。multimap.get(key).size()
假设您的地图声明如下:MultiMap map
,您可以执行以下操作:
for (String key : map.keySet()) {
int count = map.get(key).size();
}
使用asMap()
for (Map.Entry<String, Collection<Integer>> entry : multimap.asMap().entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue().size());
}
for(Map.Entry:multimap.asMap().entrySet()){
System.out.println(entry.getKey()+“=”+entry.getValue().size());
}
注意:要在多重映射
上获取键的集
,您需要调用键集()
,而不是键()
(它索引重复键的次数与它的值相同)。问题是它会循环所有可用键,包括大小为3的食物。它也因此循环了3次。哦,你说的是在钥匙上循环:只需在keySet()
上循环,而不是在keys()
上循环,每个钥匙只循环一次。它还将食物计算为3次。总共是6,而我只想要4(娱乐、食品、产品、健康和美容)是的,这应该是(字符串键:map.keySet())
。