2017-05-03 41 views
0

所以我在理解这段代码时遇到了一些困难。 for-each从数组中输入字符串以及计数相同字符串数的计数器,但计数器如何执行此操作?使用计数器将数组插入到散列表中

什么是获取传递在对抗数:Integer count = map.get(nextString);

什么做的if语句吗?

 HashMap<String, Integer> map = new HashMap<>(); 

    for (String nextString : inArray) { 

     Integer count = map.get(nextString); 

     if (count == null) { 

     count = 1; 

     } else { 

     count = count + 1; 

     } 

     map.put(nextString, count); 

    } 
+0

究竟是什么问题? –

+0

你知道Java HashMap是如何工作的吗? –

回答

1
HashMap<String, Integer> map = new HashMap<String, Integer>(); 

这只是我们的初始化HashMap的,没有什么复杂的。

for (String nextString : inArray) { 

    Integer count = map.get(nextString); 

在这里,我们正在寻找与我们(在这种情况下,从我们的阵列字符串)相关联的

if (count == null) { 

     count = 1; 

因为我们正在更新与发生给定的字符串,如果有我们的键,然后这个字符串尚未计入相关联的值的次数的地图,所以我们设置count 1因为这是我们数组中第一次出现这个字符串。

} else { 

     count = count + 1; 

如果上述if语句没有执行,这意味着有与字符串相关的一些价值,因此,我们可以只增加那么它放回到地图。

} 

    map.put(nextString, count); 

} 
+0

太棒了,谢谢你! – VICWICIV

+1

请修复懒惰的身份,而不是复制OP使用的那种混乱的样式。 – GhostCat

+0

排序,谢谢指出。 –