import java.util.HashSet;
import java.util.Set;
/**
* 学生类
* @author Administrator
*
*/
public class StudentCls {
public String name;
public String id;
// public Set<CourseCls> couSet;
public StudentCls(String name,String id){
this.name=name;
this.id=id;
// this.couSet=new HashSet<CourseCls>();
}
}
import java.util.*;
public class MapTest {
public Map<String, StudentCls> students;
public void putTest(){
Scanner sca=new Scanner(System.in);
int i=0;
while(i<3){
System.out.println("请输入学生ID");
String ID=sca.next();
StudentCls stu=students.get(ID);
if(stu==null){
System.out.println("请输入学生姓名:");
String name=sca.nextLine();
StudentCls newstu=new StudentCls(name, ID);
students.put(ID, newstu);
System.out.println("成功添加学生"+students.get(ID).name);
i++;
}
else{
System.out.println("已有该学生!");
}
}
}
public void ketSet(){
Set<String> keyset=students.keySet();
System.out.println("总共有"+keyset.size()+"个学生");
for(String id:keyset){
StudentCls stu=students.get(id);
if(stu!=null){
System.out.println("学生:"+stu.name);
}
}
}
public static void main(String[] args) {
MapTest mt=new MapTest();
mt.putTest();
mt.ketSet();
}
}
1 回答
已采纳
guozhchun
TA贡献103条经验 获得超76个赞
students 只是声明了并没有定义,其是一个null,因此在调用students.get(ID)时会报错。
可以定义一个构造函数给students赋值,也可以直接在声明时定义:
public Map<String, StudentCls> students = new HashMap<String, StudentCls>();
添加回答
举报
0/150
提交
取消