继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

第五章 学生选课系统,关于map的使用

蛛丝与马迹
关注TA
已关注
手记 8
粉丝 9
获赞 105

创建了Pupil类用于存储学生信息。
然后在MapTest中对map类进行增、删、改、查。
基本实现功能,代码如下:

package com.Map.test;

public class Pupil {
    int Id;
    String Name;
    public Pupil(int id ,String name){
        Id = id;
        Name = name;
    }
    public Pupil(){

    }
}

MapTest类

package com.Map.test;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class MapTest {

    public Map<String,Pupil> Students;

    public MapTest(){
        this.Students = new HashMap<String,Pupil>();
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MapTest mapt = new MapTest();
        mapt.AddPupil();
        mapt.showPupil();
        mapt.deletePupil();
        mapt.showPupil();
        mapt.modifyPupil();
        mapt.showPupil();
    }

/**
 *  AddPupil函数的作用,使用其添加学生信息,如学生的键,ID和值。
 */
    public void AddPupil(){
        int i=0;
        System.out.println("请输入学生的信息:");
        Scanner Console = new Scanner(System.in);
        while(i<3){
            System.out.println("请输入学生的键:");
            Pupil st = new Pupil();
            int add_Id;
            String add_Name;
            String add_Key;       //获取key
            add_Key = Console.next();
            //判断输入的ID是否已经存在;
            Pupil add_return = Students.get(add_Key);
            if(add_return==null){    //说明输入的Key不存在,可以加入
                System.out.println("输入学生的ID:");
                add_Id = Console.nextInt();
                System.out.println("输入学生的姓名:");
                add_Name = Console.next();
                st.Id = add_Id;
                st.Name = add_Name;
                Students.put(add_Key, st);
            }
            else{
                System.out.println("输入的键值已经存在,请重新输入:");
                continue;
            }
            i++;    
        }
    }

/*
 *  showPupil,通过foreach的方法遍历输出student元素
 */

    public void showPupil(){
        //获得Student中所以得key
        Set<String> StudentKeys = Students.keySet() ;
        System.out.println("学生的信息为:");
        for(String temp : StudentKeys){
            System.out.println("学生的键为:"+temp+",学生的ID为:"+Students.get(temp).Id+
                    ",学生的姓名是:"+Students.get(temp).Name);
        }

    }

    public void deletePupil(){
        String delete_Key;    //输入要删除学生的键
        Scanner conse = new Scanner(System.in);
        while(true){
          System.out.println("请输入要删除学生的键:");
          delete_Key = conse.next();
          Pupil st = new Pupil();
          st = Students.get(delete_Key);
          if(st!=null){
              Students.remove(delete_Key);
           System.out.println("要删除学生的ID是:"+st.Id+",姓名是:"+st.Name);
           break;          
          }
          else
              System.out.println("没有这个键,请重新输入。");

        }
    }
/*
 *  modifyPupil通过给定的键,调用put方向修改在该键处的值
 */

    public void modifyPupil(){
        String modify_key;
        Scanner sca = new Scanner(System.in);
        Pupil temp = new Pupil();

        int modify_Id;
        String modify_Name;
        while(true){
        System.out.println("输入要修改学生的key:"); 
        modify_key = sca.next();
        temp = Students.get(modify_key);    
        if(temp!=null){     //若不为空
            System.out.println("要修改的学生信息为:");
            System.out.println("学生的ID:"+temp.Id+",学生的姓名:"+temp.Name);
            System.out.println("请输入要修改的信息:");
            System.out.println("学生的ID:");
            modify_Id = sca.nextInt();
            System.out.println("学生的姓名:");
            modify_Name = sca.next();
            Pupil NewStudent = new Pupil(modify_Id,modify_Name);
            Students.put(modify_key, NewStudent);
            System.out.println("修改成功!");
            break;
        }
        else{
            System.out.println("没有这个key值");
            continue;
        }   
     }
    }
}
打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP