为了账号安全,请及时绑定邮箱和手机立即绑定

为什么无法输入名字,只能输出序号!

package com.imooc_collection;

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

public class MapTest {
 /**
  * 用来承装学生类型对象
  * @param args
  */
 public Map<String,Student>students;
 /**
  * 在构造器中初始化student属性
  * @param args
  */
 public MapTest(){
  this.students=new HashMap<String,Student>();
 }
 /**
  * 测试添加:输入学生ID,判断是否被占用
  * 若违背占用,则输入姓名,创建新学生对象,并且
  * 添加到student中
  * @param args
  */
 public void testPut(){
  Scanner console=new Scanner(System.in);
  int i=0;
  while(i<3){
   System.out.println("请输入学生ID:");
   String ID=console.next();
   //判断该ID是否被占用
   Student st=students.get(ID);
   if(st==null){
    System.out.println("请输入学生姓名:");
    String name=console.next();
    //创建一个新的学生对象
    Student newStudent=new Student(ID,name);
    //通过调用student的put方法,添加ID-学生映射
    students.put(ID,newStudent);
    System.out.println("成功添加学生:"+students.get(ID).name);
    i++;
   }else{
    System.out.println("该学生ID已被占用!");
    continue;
   }
  }
 }
 
 /**
  * 测试Map的KepSet方法
  * @param args
  */
 public void testKeySet(){
  //通过keySet方法,返回Map中的所有“键”的set集合
  Set<String>keySet=students.keySet();
  //取得students的容量
  System.out.println("总共有:"+students.size()+"个学生!");
  //遍历keySet,取得每一个键,再调用get方法取得每个键对应的value
  for(String stuId:keySet){
   Student st=students.get(stuId);
   if(st!=null){
    System.out.println("学生:"+st.name);
   }
  }
 }

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  MapTest mt=new MapTest();
  mt.testPut();
  mt.testKeySet();
 }

}


正在回答

2 回答

你的代码没问题,我运行了的,可以输出啊

0 回复 有任何疑惑可以回复我~

发斯蒂芬

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么无法输入名字,只能输出序号!

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号