graph TD A[开始] --> B[初始化: 定义英文文本]; B --> C[输出: 原始文本]; C --> D[--- ArrayList 处理 ---]; D --> E{预处理文本: 转小写, 去标点, 按空格拆分}; E --> F["将拆分后的单词存入 ArrayList (wordList)"]; F --> G[移除 ArrayList 中的空字符串]; G --> H{"计算: wordList 的大小 (单词总数)"}; H --> I[输出: 单词总个数]; I --> J{创建副本并排序: 对 wordList 进行排序}; J --> K[输出: 排序后的所有单词]; K --> L[--- HashSet 处理 ---]; L --> M{"创建: 从 wordList 创建 HashSet (uniqueWordsSet) 以获取不重复单词"}; M --> N{"计算: uniqueWordsSet 的大小 (不同单词个数)"}; N --> O[输出: 不同单词的个数]; O --> P[输出:所有不同的单词]; P --> Q[--- HashMap 处理 ---]; Q --> R{"创建: 初始化空的 HashMap (wordCountMap)"}; R --> S{遍历 wordList 中的每个单词}; S -- 存在 --> T{更新: 单词在 wordCountMap 中已存在, 个数+1}; S -- 不存在 --> U{添加: 单词首次出现, 存入 wordCountMap, 个数设为1}; T --> V[遍历完所有单词]; U --> V; V --> W{遍历 wordCountMap}; W --> X[输出: 每个单词及其出现的次数]; X --> Y[结束];