一、目的(本次实验所涉及并要求掌握的知识点)
掌握类的继承复用技术。
掌握接口设计技术。
理解多态技术。
理解常用的设计模式
初步能进行Java面向对象的综合设计
二、题目:
设计一个关键字统计程序:利用HashMap存储关键字统计信息,对用户输入的关键字进行个数统计。
a、设计思路:
首先,创建了一个HashMap对象keywordCount,用于存储关键字及其出现的次数。然后,使用Scanner对象获取用户的输入,如果用户输入的关键字已经存在于HashMap中,就将其对应的值加一;如果不存在,就将其添加到HashMap中,并设置其值为1。最后,使用for-each循环遍历HashMap,打印出每个关键字及其出现的次数。
b、主要代码结构:
- HashMap对象keywordCount:用于存储关键字及其出现的次数。
- Scanner对象:用于获取用户的输入。
- while循环:用于不断获取用户的输入,直到用户输入"exit"为止。
- if-else语句:用于判断用户输入的关键字是否已经存在于HashMap中,并进行相应的操作。
- for-each循环:用于遍历HashMap,打印出每个关键字及其出现的次数。
c、主要代码段的文字分析:
在while循环中,首先获取用户的输入,如果用户输入的是"exit",就跳出循环;否则,就判断用户输入的关键字是否已经存在于HashMap中,如果存在,就将其对应的值加一;如果不存在,就将其添加到HashMap中,并设置其值为1。这种方式使得我们可以方便地统计用户输入的关键字的个数,而且由于使用了HashMap,我们还可以快速地查找到任意一个关键字及其出现的次数。这就是HashMap的强大之处。
d、输出结果截图:
图2-4
附录代码:
import java.util.HashMap;
import java.util.Scanner;
public class KeywordCounter {
public static void main(String[] args) {
HashMap<String, Integer> keywordCount = new HashMap<>();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入关键字,输入'exit'结束:");
while (true) {
String input = scanner.nextLine();
if (input.equalsIgnoreCase("exit")) {
break;
}
if (keywordCount.containsKey(input)) {
keywordCount.put(input, keywordCount.get(input) + 1);
} else {
keywordCount.put(input, 1);
}
}
System.out.println("关键字统计结果:");
for (String keyword : keywordCount.keySet()) {
System.out.println("关键字 '" + keyword + "' 出现了 " + keywordCount.get(keyword) + " 次");
}
}
}