为了账号安全,请及时绑定邮箱和手机立即绑定

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();
	}
}


正在回答

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

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

    }

    }     

}

1:数据结构

2:C语言

3:离散数学

4:汇编语言

5:高等数学

6:大学英语

欢迎学生小明选择课程!

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

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

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

选择了课程1.数据结构

选择了课程2.C语言

选择了课程3.离散数学

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

机智的意竹竹 提问者

我的运行结果是这种不正常的结果,唉,为什么啊 有如下课程待选(通过for each访问): 课程:2:C语言 课程:1:数据结构 课程:5:高等数学 课程:6:大学英语 课程:3:离散数学 课程:4:汇编语言 欢迎1号小明同学来选课 请输入课程id 1 请输入课程id 2 请输入课程id 4 3离散数学 2C语言 6大学英语 1数据结构 5高等数学 4汇编语言
2017-04-24 回复 有任何疑惑可以回复我~
#2

机智的意竹竹 提问者

!!!!!我找到添加失败的原因了,我的if后面手误打了分号,现在就是遍历出来的courses没有做到无序。不好意思,麻烦了
2017-04-24 回复 有任何疑惑可以回复我~

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

如:

我选:1,2,4

你输入:1,2,4

和你输入:4,2,1

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

0 回复 有任何疑惑可以回复我~
#1

机智的意竹竹 提问者

运行出来是这样,不正常呀 有如下课程待选(通过for each访问): 课程:2:C语言 课程:1:数据结构 课程:5:高等数学 课程:6:大学英语 课程:3:离散数学 课程:4:汇编语言 欢迎1号小明同学来选课 请输入课程id 1 请输入课程id 2 请输入课程id 4 3离散数学 2C语言 6大学英语 1数据结构 5高等数学 4汇编语言
2017-04-24 回复 有任何疑惑可以回复我~
#2

机智的意竹竹 提问者

!!!!!我找到添加失败的原因了,我的if后面手误打了分号,现在就是遍历出来的courses没有做到无序。不好意思,麻烦了
2017-04-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信