问答详情
源自:4-11 学生选课---通过 Set 集合管理课程

为什么我的是有序的???????

http://img.mukewang.com/58f9a8210001865805660865.jpg

http://img.mukewang.com/58f9a82200017f2508400893.jpg

不过顺序是相反的。数123,他就321,数321 他就123.。怎么回事

提问者:神的孩子啊 2017-04-21 14:36

个回答

  • ReginaldLU
    2017-04-21 18:09:44
    已采纳

    你所说的两个问题应该不在你所贴出的图里面,首先你应该去看一下你的Student类里面定义的是"pulic List<Course> courses"还是"Set",如果是List,将其改成 public Set<Course> courses,然后在最后才可能是无序的。

    如果不是上面的这个问题,老师在讲解里面也说了,即使是无序的,也有可能不一样,那其实没准你的结果就是无序之后的“巧合”而已,如果是这种情况,建议你可以同一输入顺序多运行几次。

    我也是在学习过程中,如果建议有不足,还望大家指正。谢谢!

  • 丧心病狂周大仙
    2017-07-02 08:22:58

    1:数据结构

    2:C语言

    3:离散数学

    4:汇编语言

    5:高等数学

    6:大学英语

    欢迎学生小明选择课程!

    请输入你要选择的课程:1

    请输入你要选择的课程:2

    请输入你要选择的课程:3

    选择了课程1.数据结构

    选择了课程2.C语言

    选择了课程3.离散数学

    public static void main(String[] args) {

    // TODO Auto-generated method stub

             TestSet st=new TestSet();

             st.testAdd();

             st.testForEach();

             Student student=new Student("1","小明");

             System.out.println("欢迎学生"+student.name+"选择课程!");

             Scanner inputcourse=new Scanner(System.in);

             for(int i=0;i<3;i++){

            System.out.print("请输入你要选择的课程:");

            String courseId=inputcourse.next();

            for(Course cr:st.coursesToSelect){

            if(cr.id.equals(courseId)){ 

            student.Courses.add(cr);

           

            }

            }

             }

             st.TestSetForEachForSet(student);

             }

        public void TestSetForEachForSet(Student student){

        for(Course cr1:student.Courses){

        System.out.println("选择了课程"+cr1.id+"."+cr1.name);

        }

        }     

    }

    我也是这样- -

  • 龙少Derrick
    2017-04-21 17:35:23

    你这不是用"List"实现的课程列表吗,当然是有序的。视频中是用"Set"数据集实现的,所以每次运行结果都不一样