肯学
2015-12-21 21:20
package ine.collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class MapTest {
public Map<String,Student>students;
public MapTest(){
this.students=new HashMap<String,Student>();
}
public void testPut(){
Scanner consol=new Scanner(System.in);
for(int i=0;i<3;i++){
System.out.println("请输入学生ID:");
String ID=consol.next();
Student st=students.get(ID);
if (st==null){
System.out.println("请输入学生姓名:");
String name=consol.next();
Student newStudent=new Student(ID,name);
//通过调用Studet的put方法,添加ID-学生的映射关系
students.put(ID, newStudent);
System.out.println("成功添加:"+students.get(ID).name);
}else{
System.out.println("该学生ID已被占用!");
continue;
}
}
}
public void testKeySet(){
Set<String>keySet=students.keySet();
System.out.println("总共有"+students.size()+"个同学");
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 temp=new MapTest();
temp.testPut();
temp.testKeySet();
}
}
我看了下代码没问题,你检查下是不是输入“小红”的时候有误操作吧?
你理解的不够 加油吧
System.out.println("成功添加:"+students.get(ID).name);
第一,students.get(ID).name是什么意思,java中没有对象.属性调用属性的。
另外你这代码,testkeySet方法不会执行的啊。
Java入门第三季
409764 学习 · 4543 问题
相似问题