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


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

}


}


Meng7y
浏览 1691回答 3
3回答

精慕门9254224

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

磁单极

虽然是无序的,但是也是通过hash算法得出,存放的位置,你这只是存放的三个元素,而且测试次数较少,可以多存几个元素,多测试几次试一试
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java