0

0

HashMap迭代实现等级评定系统

DDD

DDD

发布时间:2025-08-06 18:06:12

|

877人浏览过

|

来源于php中文网

原创

hashmap迭代实现等级评定系统

本文将详细介绍如何使用Java中的HashMap数据结构来实现一个等级评定系统。通过HashMap存储等级和分数范围,并结合Scanner类获取用户输入的分数,最终确定对应的等级。文章将提供完整的代码示例,并对关键步骤进行解释,帮助读者理解HashMap的迭代和应用。

使用HashMap实现等级评定系统

等级评定系统是一种常见的应用场景,它可以根据学生的成绩或其他指标来评定等级。传统上,可以使用if-else语句或switch语句来实现,但使用HashMap可以使代码更简洁、更易于维护。

HashMap简介

HashMap是Java中一种常用的数据结构,它实现了Map接口,用于存储键值对。HashMap具有以下特点:

一点PPT
一点PPT

一句话生成专业PPT,AI自动排版配图

下载
  • 键唯一: 每个键只能对应一个值。
  • 无序: 元素存储的顺序是不确定的。
  • 允许null键和null值: 但通常不建议使用null键。

代码实现

以下是一个使用HashMap实现等级评定系统的示例代码:

import java.util.LinkedHashMap;
import java.util.Scanner;
import java.util.InputMismatchException;

public class GradingSystem {

    public static void main(String[] args) {
        try {
            // 使用LinkedHashMap保持插入顺序
            LinkedHashMap<String, Integer> scoreMap = new LinkedHashMap<>();
            scoreMap.put("Fail", 40); // 修改为40,使40分及以上为及格
            scoreMap.put("Third Class", 50);
            scoreMap.put("Second Class, Division 2", 60);
            scoreMap.put("Second Class, Division 1", 70);
            scoreMap.put("First Class", 101); // 修改为101,使70分及以上为First Class

            Scanner scanner = new Scanner(System.in);

            System.out.println("请输入你的分数:");

            int mark = scanner.nextInt();

            if (mark < 0 || mark > 100) {
                System.out.println("无效输入:分数超出范围。");
                return;
            }

            // 遍历HashMap,找到对应的等级
            for (String grade : scoreMap.keySet()) {
                if (mark < scoreMap.get(grade)) {
                    System.out.println("你的等级是: " + grade);
                    break;
                }
            }
        } catch (InputMismatchException e) {
            System.out.println("无效输入,程序终止。");
        }
    }
}

代码解释

  1. 创建HashMap: 创建一个LinkedHashMap实例,用于存储等级和对应的最低分数。使用LinkedHashMap是为了保持插入顺序,从而方便后续的等级判断。
  2. 添加等级和分数: 使用put()方法向HashMap中添加等级和对应的最低分数。
  3. 获取用户输入: 使用Scanner类获取用户输入的分数。
  4. 输入校验: 检查输入的分数是否在有效范围内(0-100)。
  5. 遍历HashMap: 使用keySet()方法获取HashMap中所有键的集合,然后遍历该集合。
  6. 等级判断: 在循环中,将用户输入的分数与HashMap中每个等级对应的最低分数进行比较。如果分数小于某个等级的最低分数,则说明该等级是用户所属的等级。
  7. 输出结果: 输出用户所属的等级。
  8. 异常处理: 使用try-catch块处理InputMismatchException异常,防止用户输入非数字字符导致程序崩溃。

注意事项

  • 等级顺序: HashMap是无序的,因此需要使用LinkedHashMap来保持等级的顺序。
  • 分数范围: 需要确保HashMap中等级对应的分数范围是正确的,否则可能导致等级评定错误。
  • 边界条件: 需要考虑边界条件,例如分数等于某个等级的最低分数时,应该如何评定等级。

总结

使用HashMap可以方便地实现等级评定系统,使代码更简洁、更易于维护。通过本文的介绍,读者可以了解HashMap的基本用法,并将其应用到实际项目中。在实际应用中,可以根据具体需求对代码进行修改和完善,例如添加更多的等级、支持不同的评分标准等。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

254

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1089

2024.03.01

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

847

2023.08.22

switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

569

2023.09.21

Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

441

2024.03.13

treenode的用法
treenode的用法

​在计算机编程领域,TreeNode是一种常见的数据结构,通常用于构建树形结构。在不同的编程语言中,TreeNode可能有不同的实现方式和用法,通常用于表示树的节点信息。更多关于treenode相关问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

550

2023.12.01

C++ 高效算法与数据结构
C++ 高效算法与数据结构

本专题讲解 C++ 中常用算法与数据结构的实现与优化,涵盖排序算法(快速排序、归并排序)、查找算法、图算法、动态规划、贪心算法等,并结合实际案例分析如何选择最优算法来提高程序效率。通过深入理解数据结构(链表、树、堆、哈希表等),帮助开发者提升 在复杂应用中的算法设计与性能优化能力。

30

2025.12.22

深入理解算法:高效算法与数据结构专题
深入理解算法:高效算法与数据结构专题

本专题专注于算法与数据结构的核心概念,适合想深入理解并提升编程能力的开发者。专题内容包括常见数据结构的实现与应用,如数组、链表、栈、队列、哈希表、树、图等;以及高效的排序算法、搜索算法、动态规划等经典算法。通过详细的讲解与复杂度分析,帮助开发者不仅能熟练运用这些基础知识,还能在实际编程中优化性能,提高代码的执行效率。本专题适合准备面试的开发者,也适合希望提高算法思维的编程爱好者。

45

2026.01.06

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号