import java.util.HashMap; import java.util.Map; import java.util.Scanner; import java.util.Set; public class MapTest { //用来承装学生类对象 public Map<String,Student>students; //在构造器中初始化students属性 public MapTest(){ this.students=new HashMap<String,Student>(); } //测试添加:输入学生ID判断是否被占用 //若未被占用,则输入姓名,创建学生对象,并且添加到students中 public void testPut(){ 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(); //0创建学生对象 Student newStudent=new Student(ID,name); students.put(ID, newStudent); System.out.println("成功添加学生:"+students.get(ID).name); i++; }else{ System.out.println("该ID已经被占用"); } } } /* * *测试Map的keySet方法 * */ public void testKeySet(){ //通过KeySet方法,但会Map中的所有“键”的set集合 Set<String> KeySet=students.keySet(); //取得students的容量 System.out.println("总用有:"+students.size()+"个学生"); //通过遍历keySet,取得每一个键,在调用get方法的每个键对应的value值 for (String stuID:KeySet){ Student st=students.get(stuID); if(st!=null){ System.out.println("学生:"+st.name); } } } public static void main(String[] args) { // TODO Auto-generated method stub MapTest mt=new MapTest(); mt.testPut(); mt.testKeySet(); } }
我将你的代码复制了一遍 运行了一下 可以 没报错 ,你的表述 问题不太清晰,不知道具体问题