不使用HashMap方法
时间: 2023-09-04 18:12:02 浏览: 141
基于HashMap遍历和使用方法(详解)
好的,如果不使用 HashMap,我们可以采用两个数组来完成,一个数组用于存放单词,另一个数组用于存放单词出现的次数。这样做的缺点是需要事先确定单词数组的长度,如果句子中的单词数目超过了数组长度,就无法正确统计出现次数。
以下是一个基于 Arrays 的 Java 代码示例:
```java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String sentence = "Java is a popular programming language used to develop applications.";
String[] words = sentence.split(" ");
int[] counts = new int[words.length];
for (int i = 0; i < words.length; i++) {
counts[i] = 1;
for (int j = i + 1; j < words.length; j++) {
if (words[i].equals(words[j])) {
counts[i]++;
}
}
}
int maxCount = counts[0];
int maxIndex = 0;
for (int i = 1; i < counts.length; i++) {
if (counts[i] > maxCount) {
maxCount = counts[i];
maxIndex = i;
}
}
System.out.println("The most frequent word is \"" + words[maxIndex] + "\", which appears " + maxCount + " times.");
}
}
```
在这个示例中,我们首先定义了一个字符串变量 `sentence`,它包含要统计的英文句子。然后,我们使用 `split()` 方法将句子按照空格分割成单词,并将它们保存在一个字符串数组 `words` 中。
接下来,我们定义了一个整型数组 `counts`,用于记录每个单词出现的次数。我们遍历 `words` 数组,对于每个单词,我们将它的出现次数初始化为 1,然后再遍历 `words` 数组中该单词后面的所有单词,如果有和它相同的单词,我们就将它的出现次数加 1。
最后,我们遍历 `counts` 数组,找到出现次数最多的那个单词,并将它的下标保存在变量 `maxIndex` 中。我们还记录了这个单词出现的次数,并将它保存在变量 `maxCount` 中。最后,我们打印出这个单词和它的出现次数。
需要注意的是,这种方法只适用于单词数组长度足够的情况,否则可能会出现数组越界的错误。如果要处理长度不确定的单词数组,还是建议使用 HashMap 来完成。
阅读全文