为什么我一样输入ID:1、2、......、9,都到9了,而且value值我还特意打乱了输入,结果运行出来的顺序还是有序的。。。而讲师只输入了3个key值就已经表现出了乱序。。。这究竟是怎么回事?

public class MapTest {
Scanner input=new Scanner(System.in);
//创建Map对象,用来承装学生类型对象
public Map<String,Student> students;
//在构造器中初始化students属性
public MapTest(){
this.students=new HashMap<String,Student>();
}
//测试“添加”方法:接收输入学生ID,检测是否被占用;若未被占用,则提示输入姓名并创建新学生对象,添加到students中
public void testPut() {
int a=0;
while(a<9) {
System.out.println("请输入学生ID:");
String id=input.next();
//判断ID是否被占用
Student st=students.get(id); //此处若students中不存在此ID,则返回null值。
if(st==null) {
System.out.println("请输入学生姓名:");
String name=input.next();
//创建新的学生对象
Student newStudent=new Student(id,name);
//通过调用students的put()方法,添加“ID-学生”映射
students.put(id, newStudent);
//if条件为“st==null",所以此处不能替换为“st.name",因为st中可能包含空指针。
System.out.println("成功添加学生:"+newStudent.name);
a++;
}else {
System.out.println("您输入的ID已被占用!");
}
}
}
//测试Map(students)的keySet()方法
public void keySet() {
//通过keySet方法,返回students中所有“键”的集合
Set<String> key=students.keySet();
System.out.println("总共有"+students.size()+"个学生");
for(String stuId:key) {
Student st=students.get(stuId);
if(st!=null) {
System.out.println("学生:"+st.name);
}
}
}
//测试删除Map中的映射
public void testRemove() {
//判断是否有对应的学生对象
while(true) {
System.out.println("请输入要删除的学生的ID:");
String rmId=input.next();
Student st=students.get(rmId);
if(st==null) {
System.out.println("输入的ID不存在!");
continue;
}
students.remove(rmId);
System.out.println("学生:"+st.name+"已删除!");
break;
}
}
//通过entrySet方法来遍历Map
public void testEntrySet() {
//通过entrySet方法返回Map中的所有键值对
Set<Entry<String,Student>> entrySet=students.entrySet();
for(Entry<String,Student> entry:entrySet) {
System.out.println("取得键:"+entry.getKey());
System.out.println("对应的值为:"+entry.getValue().name);
}
}
//利用put()方法修改Map中已有的映射
public void testModify() {
System.out.println("请输入要修改的学生ID:");
while(true) {
String id=input.next();
//从students中查找该学生ID对应的学生对象
Student st=students.get(id);
if(st==null) {
System.out.println("该ID不存在,请重新输入!");
}else {
System.out.println("当前ID所对应的学生为:"+st.name);
System.out.println("请输入新的学生姓名:");
String newName=input.next();
Student newSt=new Student(id,newName);
students.put(id, newSt);
System.out.println("修改成功!");
break;
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MapTest mt=new MapTest();
mt.testPut();
mt.keySet();
// mt.testRemove();
mt.testModify();
mt.testEntrySet();
}
}