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

​ 为什么我打印出来的顺序是一样的????

请输入学生ID: 1 请输入学生姓名: Tom 成功添加学生:Tom 请输入学生ID: 1 该学生id已存在! 请输入学生ID: 2 请输入学生姓名: Jack 成功添加学生:Jack 请输入学生ID: 3 请输入学生姓名: xiaoming 成功添加学生:xiaoming 总共有:3个学生 学生:Tom 学生:Jack 学生:xiaoming 




正在回答

3 回答

你把while(i<3)里的数字3改大一点然后在执行程序输出看看就不一定了。

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

public Map<String,Student> students;


public MapTest() {

// TODO Auto-generated constructor stub

students = new HashMap<>();

}


/**

* 添加,输入学生id,判断是否存在

* 若不存在,则输入姓名,创建新学生对象,并添加进去

* @param args

*/

public void testPut(){

//创建一个Scanner对象,用来获取输入的学生ID和姓名

Scanner scanner = new Scanner(System.in);

int i = 0;

while(i<3){

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

String id = scanner.next();

//判断该ID是否已存在

Student st = students.get(id);

if(st == null){

//为空不存在该ID的学生信息,输入学生姓名,创建一个新的学生对象,添加到map

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

String name = scanner.next();

//创建学生实例

Student newStudent = new Student();

newStudent.setId(id);

newStudent.setName(name);

students.put(id, newStudent);

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

i++;

}else{

System.out.println("该学生id已存在!");

continue;

}

}

}

/**

* 测试Map的keyset方法

* @param args

*/

public void testKeySet(){

//通过keyset方法,返回map中所有键的值

Set<String> keyset = students.keySet();

System.out.println("总共有:"+students.size()+"个学生");


//遍历keyset,取得每个key的值,再调用get方法取得key对应的value

for (String string : keyset) {

Student stu = students.get(string);

if(stu!=null){

System.out.println("学生:"+stu.getName());

}

}




}


public static void main(String[] args) {

// TODO Auto-generated method stub

MapTest test = new MapTest();

test.testPut();

test.testKeySet();

}


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

代码贴出来

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

铅笔没有墨 提问者

代码如下
2017-11-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

​ 为什么我打印出来的顺序是一样的????

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