Java中集合的定义和使用
1. 简介
Java中的集合是一种用于存储和操作一组对象的容器。它们提供了各种方法来增加、删除、搜索和排序集合中的元素。集合框架提供了多种类型的集合,例如列表、集合和映射等。
在本文中,我们将使用Java集合来解决一个具体的问题:统计一段文本中每个单词出现的次数。我们将通过示例代码展示如何使用集合来实现这个功能。
2. 方案
首先,我们需要定义一个字符串变量来存储文本,并将其拆分为单词数组。然后,我们使用一个HashMap来存储每个单词和它出现的次数。最后,我们遍历单词数组,将每个单词作为键,将出现次数作为值存储到HashMap中。
以下是完整的示例代码:
import java.util.HashMap;
import java.util.Map;
public class WordCountExample {
public static void main(String[] args) {
// 定义待统计的文本
String text = "This is a sample text. It contains multiple words and some words may appear multiple times.";
// 将文本拆分为单词数组
String[] words = text.split("\\s+");
// 定义一个HashMap来存储单词和它出现的次数
Map<String, Integer> wordCountMap = new HashMap<>();
// 遍历单词数组,统计每个单词的出现次数
for (String word : words) {
// 如果单词已经存在于HashMap中,则增加其出现次数
if (wordCountMap.containsKey(word)) {
int count = wordCountMap.get(word);
wordCountMap.put(word, count + 1);
} else {
// 否则,将新单词插入到HashMap中,出现次数为1
wordCountMap.put(word, 1);
}
}
// 输出每个单词和它出现的次数
for (Map.Entry<String, Integer> entry : wordCountMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
以上代码首先定义了一个待统计的文本,然后使用split()
方法将文本拆分为单词数组。接下来,我们创建了一个HashMap
对象来存储单词和它出现的次数。
在遍历单词数组的过程中,我们使用containsKey()
方法判断单词是否已经存在于HashMap
中。如果存在,则通过get()
方法获取该单词的出现次数,并将其加1后再次存储到HashMap
中;如果不存在,则直接将新单词插入到HashMap
中,出现次数为1。
最后,我们使用entrySet()
方法获取HashMap
中的每个键值对,并遍历输出每个单词和它出现的次数。
3. 关系图
下面是本方案中涉及的类之间的关系图:
erDiagram
WordCountExample ||--|| HashMap
WordCountExample |..| Map
4. 流程图
下面是本方案的流程图:
flowchart TD
A[定义待统计的文本] --> B[将文本拆分为单词数组]
B --> C[定义HashMap来存储单词和它出现的次数]
C --> D[遍历单词数组]
D --> E{单词是否已经存在于HashMap中?}
E --> |是| F[增加其出现次数]
E --> |否| G[将新单词插入到HashMap中]
F --> D
G --> D
D --> H[输出每个单词和它出现的次数]
以上是使用Java集合解决统计单词出现次数的问题的方案。通过定义一个HashMap来存储每个单词和它的出现次数,我们可以高效地完成统计,并输出结果。