练习-java集合类之map的hashmap之统计各单词出现的次数
时间: 2023-05-31 18:20:11 浏览: 254
### 回答1:
可以使用 HashMap 来统计每个单词出现的次数。可以将每个单词作为键,出现的次数作为值存入 HashMap 中。每当遇到一个单词时,如果它已经在 HashMap 中,则将对应的值加 1;如果不存在,则将其作为新的键插入 HashMap 并将值设为 1。
示例代码:
```
Map<String, Integer> wordCount = new HashMap<>();
for (String word : words) {
if (wordCount.containsKey(word)) {
wordCount.put(word, wordCount.get(word) + 1);
} else {
wordCount.put(word, 1);
}
}
```
在上面的示例中,“words”是一个存储单词的数组。
### 回答2:
在Java的集合类中,map是一种非常重要的数据结构,而hashmap是map中比较常用的一种实现方法。使用hashmap可以很方便地统计各单词出现的次数。
首先,我们需要定义一个hashmap对象,用来存放单词和对应的出现次数。HashMap的声明如下:
HashMap<String, Integer> map = new HashMap<String, Integer>();
其中,第一个String代表单词,第二个Integer代表出现次数。
接下来,我们需要读取文本文件,并按行进行分割,将每一行中的单词加入到hashmap中。代码如下:
try {
FileReader fr = new FileReader("test.txt"); //读取文件
BufferedReader br = new BufferedReader(fr); //缓存读取器
String line;
while ((line = br.readLine()) != null) { //按行读取文件
String[] words = line.split("[\\s]+"); //按空格分割
for (String word : words) { //遍历每个单词
if (map.containsKey(word)) { //如果map中已经包含该单词
int count = map.get(word); //获取其出现次数
map.put(word, count + 1); //将其出现次数+1后重新放入map中
} else { //如果map中不包含该单词
map.put(word, 1); //将其出现次数设为1,并放入map中
}
}
}
br.close(); //关闭读取器
} catch (IOException e) {
e.printStackTrace();
}
这段代码通过FileReader和BufferedReader读取文本文件,然后按行进行分割,并使用正则表达式按空格进行分割。接着遍历每个单词,如果map中已经包含该单词,则获取其出现次数并将其加1,否则将其出现次数设为1,然后放入map中。
最后,我们需要遍历hashmap,输出各单词出现的次数。代码如下:
for (Map.Entry<String, Integer> entry : map.entrySet()) { //遍历map
System.out.println(entry.getKey() + ": " + entry.getValue()); //输出单词和出现次数
}
这段代码通过entrySet方法遍历map,然后使用getKey和getValue方法分别获取单词和出现次数,并输出到控制台上。
综上所述,通过使用hashmap可以很方便地统计各单词出现的次数。
### 回答3:
HashMap是java.util 包中的一个映射接口,其实现类HashMap对应着哈希表数据结构,HashMap中的数据是通过键值对(key-value)进行存储和访问。在需要统计一组文本中各个单词出现次数的场景中可以使用HashMap来实现。
步骤如下:
1. 将文本内容按照空格分割成单个单词,可以使用split()方法;
2. 遍历分割后的单词数组,将每个单词存储到HashMap中;
3. 在存储时需要判断该单词是否已经存在于HashMap中,如果已经存在则直接将该单词对应的值加1,否则将该单词作为键值加入HashMap,对应的初始值为1;
4. 遍历完所有单词之后就可以得到所有单词及其出现次数的统计结果了,可以使用Map.Entry<K, V>类型的对象遍历HashMap,其中K代表键值,V代表该键值对应的单词出现次数。
举个例子,文本内容为“Hello World Java World Hello”,将其按照空格分割后得到单词数组{“Hello”,“World”,“Java”,“World”,“Hello”}。现在需要统计各个单词出现的次数,按照步骤存储到HashMap中,详细过程如下:
Map<String, Integer> map = new HashMap<>();
String[] words = {"Hello", "World", "Java", "World", "Hello"};
for (String string : words) {
if(map.get(string) != null) {
map.put(string,map.get(string) + 1);
} else {
map.put(string, 1);
}
}
for(Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("单词:" + entry.getKey() + " 出现次数:" + entry.getValue());
}
输出结果为:
单词:Java 出现次数:1
单词:World 出现次数:2
单词:Hello 出现次数:2
以上就是使用HashMap实现文本中各个单词出现次数统计的步骤,适用于处理大量文本数据的场景。
阅读全文