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

一直显示ID已被占用

http://img1.sycdn.imooc.com//5f40847e0001443d01500264.jpg

package imooc_Map_ManageStudents;


import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;


/**

 * 利用Map管理学生信息,实现增删改查的功能

 * @author john

 *m

 */

public class Test_Map{


public static void main(String[] args) {

Test_Map tm=new Test_Map();

tm.testPut();

}

//创建含有泛型的Map对象<key,value>

Map <String,Student> students ;

//利用构造方法初始化students

public Test_Map() {

this.students=new HashMap<String, Student>();

}

/**

* 测试添加方法,从键盘输入ID,判断ID是否被占用,未被占用继续输入姓名,存入students中

*/

public void testPut(){

System.out.println("请输入学生ID:");

Scanner input=new Scanner(System.in);

//循环控制每次只能输入三个ID

int i=0;

String ID=input.next();//存放输入的ID

while(i<3) {

if(students.get(ID)==null) {

//输入的ID对应的value为空,提示输入学生姓名

System.out.println("请输入学生姓名:");

String Name=input.next();

//创建一个新的Student对象

Student newStudent=new Student(ID,Name);

//利用HashMap的put方法,把Stu1放入students中

students.put(ID, newStudent);

System.out.println("成功添加学生:"+students.get(ID).Name);

i++;

}else {

System.out.println("该ID已被占用!");

continue;

}

}

}

}


正在回答

3 回答

你的判断有问题,每次输入都是实例化一个新的对象,你的是保存了第一次输入的http://img1.sycdn.imooc.com//5fc5a2ce00017c0015001502.jpg

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

应该把提示输入学生ID、接收从键盘输入的ID这两句代码放在while循环内。

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

举报

0/150
提交
取消

一直显示ID已被占用

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信