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

大佬们看看这个null的问题,没有保持,但是姓名保存出了问题,不知道怎么debug

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;
private Object stuId;
 
 /**
  * 在构造器中初始化students属性
  */
 public MapTest(){
  this.students=new HashMap<String,Student>();
 }
 
 /**
  *测试添加:输入学生ID,判断是否被占用
  *若未被占用,则输入姓名,创建新学生对象
  *并且添加students中
  */
 
 public void testPut(){
  //创建一个Scanner对象,用来获取输入的学生ID和姓名
  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);
    //通过调用students的put方法,添加ID-学生映射
    students.put(ID, newStudent);
    System.out.println("成功添加学生:"+students.get(ID).name);
    i++;
   }else{
    System.out.println("该学生ID已被占用!");
    continue;
   }
  }
 }
 
 /**
  * 测试Map的keySet方法
  * @param args
  */
 public void testKeySet(){
  //通过KeySet方法,返回Map中的所有"键"的Set集合
  Set<String>keySet=students.keySet();
  //取得students的容量
  System.out.println("总共有:"+students.size()+"个学生!");
  //遍历keySet,取得每一个键,再调用get方法取得每个键对应的value
  for(String stu:keySet){
   Student st =students.get(stuId);
   if(st!=null)
   System.out.println("学生:"+st.name);
  }
 }
 
 
 public static void main(String[] args) {
  MapTest mt=new MapTest();
  mt.testPut();
  mt.testKeySet();
 }

}



正在回答

3 回答

 for(String stu:keySet){
   Student st =students.get(stu);//stuId改成stu就可以了
   if(st != null)
   System.out.println("学生:"+st.name);
  }

发现问题所在了,和null无关。详见上面的代码

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

碰碰碰气球 提问者

非常感谢!
2017-04-09 回复 有任何疑惑可以回复我~
#2

碰碰碰气球 提问者

之前是有null和"总共有:3个学生!"后面不能输出3个学生姓名,现在是能输出姓名,不过现在可以分行输出姓名,不过还是无法正确输出我输入的学生姓名
2017-04-09 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//58e45c410001a68d06230901.jpg

没看到什么问题………………

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

用的啥编辑器   debug  打断点调试

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

举报

0/150
提交
取消

大佬们看看这个null的问题,没有保持,但是姓名保存出了问题,不知道怎么debug

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

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

帮助反馈 APP下载

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

公众号

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