请输入学生ID: 1 请输入学生姓名: 小红 成功添加:xi小红 请输入学生ID: 为什么小红前面还有xi

来源:5-2 学生选课---使用 Map 添加学生

肯学

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();

}


}


写回答 关注

3回答

  • 天涯蝶舞
    2015-12-30 11:25:06

    我看了下代码没问题,你检查下是不是输入“小红”的时候有误操作吧?

  • 肯学
    2015-12-22 16:20:38

    你理解的不够 加油吧

  • qq_华丽蓝调_0
    2015-12-21 22:02:37

    System.out.println("成功添加:"+students.get(ID).name);

    第一,students.get(ID).name是什么意思,java中没有对象.属性调用属性的。

    另外你这代码,testkeySet方法不会执行的啊。

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409764 学习 · 4543 问题

查看课程

相似问题