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来存储每个单词和它的出现次数,我们可以高效地完成统计,并输出结果。