为什么老师是无序的而我的结果是有序的

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

初级阶段

2018-01-28 17:20

package com.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;
    /**
     * 在构造器中初始化students属性
     * @param args
     */
    public Maptest(){
        this.students=new HashMap<String,Student>();
    }
    /**
     * 测试添加:输入学生ID,判断是否被占用
     * 若未被占用,则输入姓名,创建一个新的学生对象,并添加到students中去
     * @param args
     */
    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();
                //创建新的学生对象
                Student newstudent=new Student(ID,name);
                //通过调用students的put方法,添加ID——学生映射
                students.put(ID,newstudent);
                System.out.println("成功添加学生:"+students.get(ID).name);
                i++;
                
            }
            else{
                System.out.println("该学生ID被占用");
                continue;
            }
        }
    }
    /**
     * 测试Map的Keyst方法
     * @param args
     */
    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 stu=students.get(stuID);
            if(stu!=null)
            System.out.println("学生:"+stu.name);    
        }
        
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       Maptest sy=new Maptest();
       sy.testput();
       sy.testKeyset();
        
    }

}

写回答 关注

2回答

  • Rexk
    2018-04-30 15:18:22

    这里的有序和无序不是我们理解中的那样,而是在不同平台下运行输出的结果一样。例如如果是有序的那么无论在windows下还是linux下运行输出的结果都是一样的,同理无序。

  • 树深时_见鹿
    2018-01-29 21:42:58

    多运行几次也是这样吗

Java入门第三季

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

409768 学习 · 4463 问题

查看课程

相似问题