我是java的新手,我需要知道如何在HashMap
我收到推文并将其存储到像
这样的字符串数组中String [] words = {i, to , go , eat,know , i ,let , let , figure , eat};
HashMap <String,Integer> set=new HashMap();
for (String w:words)
{
int freq=set.get(w);
if (freq==null)
{
set.put(w1,1)
}
else
set.put(w1,freq+1)
}
让我们假设HashMap
现在拥有我需要的所有单词
现在我怎样才能计算出与众不同的单词总数?
我可以在hashmap中看到值为1的单词吗?
我试过检查
if (set.containsvalue(1))
int dist +=set.size();
但没有奏效!
答案 0 :(得分:1)
int dist = 0;
for (int i : set.values())
if (i == 1)
++dist;
答案 1 :(得分:0)
在将单词设置为set之前,应检查密钥是否存在。如果密钥存在,那么您应该增加该值。
答案 2 :(得分:0)
以下代码段错误:
> v2 <- rep(c('02/28/2013', '03/01/2013', '02/28/2013'), c(3, 2, 1))
> as.data.frame(cumsum(table(v2)))
cumsum(table(v2))
02/28/2013 4
03/01/2013 6
> r = rle(v2); data.frame(value=r$values, cumlen=cumsum(r$lengths))
value cumlen
1 02/28/2013 3
2 03/01/2013 5
3 02/28/2013 6
freq 被声明为 int ,无法应用 null 检查。 null 检查适用于参考。
此外,我认为您在 w 和 w1
之间存在拼写错误正确的代码是:
int freq=set.get(w);
if (freq==null)
{
set.put(w1,1)
}
现在,如果您遍历地图以检查值 1 的键,您将获得不同的词语。
答案 3 :(得分:0)
您只需遍历所有地图并使用freq == 1
int unique = 0;
for(String word : set.keySet()) {
int freq = set.get(word);
if(freq == 1) {
unique++;
}
}
System.out.println(unique);