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

为什么我的这个代码输出的三门选课结果的顺序是永远一定的。用的是set集,不应该是无序的吗?

为什么我的这个代码输出的三门选课结果的顺序是永远一定的。用的是set集,不应该是无序的吗?

Meng7y 2017-06-27 20:40:36
package miooc;import java.util.ArrayList;import java.util.Scanner;;/** * 测试学生选课的类 * Meng7y * 2017年6月27日 19:25:44 */public class TestStudent { //《?》可以用List的引用类型和ArrayList类型的引用。有什么区别吗 public ArrayList<Course> courses1; public TestStudent() { this.courses1 = new ArrayList<Course>(); Course cr = new Course("1", "java"); courses1.add(cr); Course cr1 = new Course("2", "c"); courses1.add(cr1); Course cr2 = new Course("3", "c++"); courses1.add(cr2); Course cr3 = new Course("4", "c#"); courses1.add(cr3); } public void IteratorCourse(){ System.out.println("有以下可选课程!"); for(Course cr:courses1){ System.out.println("课程"+cr.getId()+":"+cr.getName()); } } public void student(){ Student sd = new Student("1", "小明"); System.out.println("欢迎"+sd.getName()+"同学选课!"); System.out.println("请输入要选择的课程序号(请选择三门课程!)"); @SuppressWarnings("resource") Scanner input = new Scanner(System.in); for(int i = 0; i < 3; i++){ System.out.println("请输入课程的序号!"); String id = input.nextLine(); for(Course cr:courses1){ if(cr.getId().equals(id)){ sd.courses.add(cr); } } } System.out.println("选择的是如下的三门课程:"); for(Course course:sd.courses){ System.out.println(course.getId()+":"+course.getName()); } } public static void main(String[] args) { // TODO Auto-generated method stub TestStudent ts = new TestStudent(); ts.IteratorCourse(); ts.student(); }}
查看完整描述

3 回答

?
精慕门9254224

TA贡献167条经验 获得超46个赞

我想知道你从哪里看出来你用的是set ?

查看完整回答
1 反对 回复 2017-06-28
  • Meng7y
    Meng7y
    public void student(){ Student sd = new Student("1", "小明"); System.out.println("欢迎"+sd.getName()+"同学选课!"); System.out.println("请输入要选择的课程序号(请选择三门课程!)"); @SuppressWarnings("resource") Scanner input = new Scanner(System.in); for(int i = 0; i < 3; i++){ System.out.println("请输入课程的序号!"); String id = input.nextLine(); for(Course cr:courses1){ if(cr.getId().equals(id)){ ****这里是一个set类型的集合***** sd.courses.add(cr); } } }
  • Meng7y
    Meng7y
    package miooc; import java.util.HashSet; import java.util.Set; /** * 选课的学生类 * Meng7y * 2017年6月27日 19:20:57 */ public class Student { private String id; private String name; public Set<Course> courses; public Student(String id, String name) { this.id = id; this.name = name; courses = new HashSet<Course>(); } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 这是另一个类,上面的sd.courses.add添加到set类型的集合里面。不知道对不对
?
磁单极

TA贡献22条经验 获得超19个赞

虽然是无序的,但是也是通过hash算法得出,存放的位置,你这只是存放的三个元素,而且测试次数较少,可以多存几个元素,多测试几次试一试

查看完整回答
反对 回复 2017-06-27
  • 3 回答
  • 0 关注
  • 1690 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信