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

set的courses集合遍历出来有6个对象,而且也有有序,不知道是哪里出了问题

public void create_Student_And_SelectCours(){
		Student st=new Student("1","小明");
		System.out.println("欢迎"+st.id+"号"+st.name+"同学来选课");
		Scanner console=new Scanner(System.in);
		
		for(int i=0;i<3;i++){
			System.out.println("请输入课程id");
			String courseId=console.next();
			for(int j=0;j<coursesToSelect.size();j++){
				Course obj=coursesToSelect.get(j);
				if(obj.id.equals(courseId));
				st.courses.add(obj);
			}
		}
		for(Course e:st.courses){
			System.out.println(e.id+e.name);
		}
	}
	
	public static void main(String[] args){
		TestSet it=new TestSet();
		it.testAdd();
		it.testForEach();
		it.create_Student_And_SelectCours();
	}
}


提问者:机智的意竹竹 2017-04-23 20:52

个回答

  • 丧心病狂周大仙
    2017-07-02 08:15:52

    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 cr:student.Courses){

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

        }

        }     

    }

    1:数据结构

    2:C语言

    3:离散数学

    4:汇编语言

    5:高等数学

    6:大学英语

    欢迎学生小明选择课程!

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

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

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

    选择了课程1.数据结构

    选择了课程2.C语言

    选择了课程3.离散数学

    我这个也是每次输出都是有序的 不知道为什么。。。。。

  • qq_找寻失落的自己_0
    2017-04-23 23:04:17

    HashSet本来就是按照哈希算法散列排序,顺序比较随机。要想按自然顺序排的话用TreeSet。想按集合对象的放入顺序排序的话应LinkedHashSet。

  • AquanGeek
    2017-04-23 22:49:33

    你试试输入相同的课程序号,但输入的顺序不同。

    如:

    我选:1,2,4

    你输入:1,2,4

    和你输入:4,2,1

    最后输出的你选课程的顺序是不一样的。