我每一次输出都是按顺序排列的

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

慕后端4477088

2019-11-27 10:03

应该是无序的啊 我输入了10个结果还是按顺序排列输出的

写回答 关注

4回答

  • 宝慕林4117178
    2020-11-10 15:54:06
    package collection_map;
    
    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,判断是否被占用
         * 若未被占用,则输入姓名,创建新学生对象,并且添加到suudents中
         *
         */
        public void testPut() {
            //创建一个Scanner对象,用来获取输入的学生ID
            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
                    students.put(ID, newStudent);
                    //输出已添加成功
                    System.out.println("已成功添加学生:" + students.get(ID).name);
                    i++;
                } else {
                    System.out.println("输入学生ID已存在,请重新输入!");
                    continue;
                }
            }
        }
    
        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) {
            MapTest mt = new MapTest();
            mt.testPut();
            mt.testKeySet();
        }
    }


  • 宝慕林4117178
    2020-11-10 15:53:39

    我也是  一直有序

  • 慕姐0546128
    2020-02-03 17:22:30

    在main方法里弄个循环,一直输出就行了

  • 慕尼黑7147324
    2020-01-30 15:24:01

    估计使用了有序排列方法

Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题