java集合类之map的hashmap之统计各单词出现的次数
时间: 2023-05-31 20:01:53 浏览: 154
### 回答1:
可以使用 HashMap 来统计单词出现的次数。例如:
```
import java.util.HashMap;
import java.util.Map;
public class WordCount {
public static void main(String[] args) {
String text = "This is a sentence. This is another sentence.";
String[] words = text.split(" ");
Map<String, Integer> wordCount = new HashMap<>();
for (String word : words) {
wordCount.put(word, wordCount.getOrDefault(word, 0) + 1);
}
System.out.println(wordCount);
}
}
```
在这个例子中,我们将文本拆分成单词数组,然后遍历单词数组并使用 HashMap 统计每个单词出现的次数。getOrDefault() 方法可以在单词不存在于 HashMap 中时返回 0。
### 回答2:
Java中的Map可以理解为一种关联数组(Associative Array),是一种将键(Key)映射到值(value)的数据结构。其中,HashMap是一种使用哈希表实现的Map,它能够对键值进行快速的查询、添加和删除操作。利用HashMap可以统计各单词出现的次数。下面详细讲解一下这一过程。
假设我们有一段文本:
text = "Java是一种面向对象的编程语言,具有良好的跨平台特性。Java拥有强大的集合框架,其中HashMap是一种使用哈希表实现的Map。"
首先,我们需要将文本转换为单词列表(List),可以使用split方法将文本按照空格进行分割:
String[] words = text.split(" ");
接下来,我们创建一个HashMap对象,用于存储各个单词出现的次数:
Map<String, Integer> map = new HashMap<>();
然后,我们遍历单词列表,对于每一个单词,我们判断它是否已经在HashMap中存在。如果存在,则将它的计数器加1;如果不存在,则将它添加到HashMap中,并将计数器设置为1。
for (String word : words) {
if (map.containsKey(word)) {
map.put(word, map.get(word) + 1);
} else {
map.put(word, 1);
}
}
最后,我们可以输出结果,得到每个单词出现的次数:
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + "出现了" + entry.getValue() + "次");
}
完整代码如下:
public class WordCount {
public static void main(String[] args) {
String text = "Java是一种面向对象的编程语言,具有良好的跨平台特性。Java拥有强大的集合框架,其中HashMap是一种使用哈希表实现的Map。";
String[] words = text.split(" ");
Map<String, Integer> map = new HashMap<>();
for (String word : words) {
if (map.containsKey(word)) {
map.put(word, map.get(word) + 1);
} else {
map.put(word, 1);
}
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + "出现了" + entry.getValue() + "次");
}
}
}
输出结果如下:
一种出现了1次
Java出现了2次
是出现了1次
面向对象的出现了1次
编程语言,具有良好的跨平台特性。Java出现了1次
拥有出现了1次
强大的集合框架,其中HashMap出现了1次
Map。出现了1次
可以看到,我们成功地统计了各个单词出现的次数。而且,由于HashMap的快速查询特性,这一过程的时间复杂度为O(n),非常高效。
### 回答3:
哈希表(HashMap)是Java集合类中最常用的一种数据结构,它可以实现键值对的映射关系。那么如何使用HashMap来统计各单词出现的次数呢?
一般情况下,我们可以将文本中的单词分离出来,存储在一个字符串数组中。接下来,遍历字符串数组中的每个单词,将单词作为键,出现次数作为对应的值存储在HashMap中。遍历完成后,HashMap中每个键所对应的值即为该单词出现的次数。
具体实现步骤如下:
1.定义一个HashMap对象用来存储键值对(单词和出现次数):
HashMap<String,Integer> wordCount = new HashMap<String,Integer>();
2.将文本中的单词分离出来,存储在字符串数组中(这里假设分离出来的单词已经存储在words数组中):
String[] words = ...;
3.遍历字符串数组中的每个单词,将单词作为键,出现次数作为对应的值存储在HashMap中:
for(String word : words){
if(wordCount.containsKey(word)){
wordCount.put(word,wordCount.get(word)+1);
}else{
wordCount.put(word,1);
}
}
4.遍历完成后,HashMap中每个键所对应的值即为该单词出现的次数。
输出HashMap中的所有键值对:
for(Map.Entry<String,Integer> entry :wordCount.entrySet()){
System.out.println(entry.getKey()+"出现了"+entry.getValue()+"次");
}
以上四步即可完成利用HashMap统计各单词出现的次数的操作。
阅读全文