Goldberg
2016-02-21 22:00
int i = 0;
while(i<3){
System.out.println("请输入ID");
Integer input = Input.nextInt(); //接受输入内容 导入过了
Course m1 = mapList.get(Input);
//System.out.println(m1); //这里m1为null
if(m1==null){
System.out.println("请输入姓名");
String n1 = Input.next();
mapList.put(input,new Course(input,n1));
//System.out.println(m1); //这里m1依旧为null
i++;
}
else{
System.out.println("ID被占用");
continue;
}
程序可以执行。。。问题是:直到循环结束后m1才有值 导致else没法执行。。怎么破
1.请输入ID 你为什么用 Integer 接受 为什么不用 String s = input.next(); 你的问题 你没有 给全部代码 我也不太清晰 初步认为 是mapList.get()是接受String 类型 ,你传进去的是integer类型
2.还有下面mapList.put()无法赋值 这里 你想要创建 Course 实例 : Course cur = new Course(Input , n1);
在 把 ID 和 Course 放入 mapList里面 ID 为key , Course 为value 。 mapList.put(ID ,Course);
这是 两层包装 。Course 类 里面 有属性 ID 和 name . Map中包含 key,value 为 ID ,Course.
第一个 我只是感觉 你 哪里 出现问题 ,不太准确 。 第二个 是map包含 东西 , 因为ID 的原因可能 有些不清晰 你可以去纸上面 画下图像 。谁包含谁 就 可以了
Java入门第三季
409792 学习 · 4340 问题
相似问题