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

set集合怎么是顺序输出?

在做最后的纸牌联系的时候,试了好几次,读出来的都是有序的

提问者:爱土豆 2016-07-26 09:40

个回答

  • 刘景龙
    2017-06-28 00:44:19

    右键项目选择properties,java compiler选择1.5的动态编译方式。你才能看到老师的这个现象。实际上这个是jdk的一个BUG,被老师用来讲普通原理了。如果你用1.8编译是不存在这个问题的,可见这个老师基础课讲的不是很好。

  • qq_不在意多努力_03205241
    2017-03-15 16:27:26

    for(Course cr:st.coursesToSelect)

  • 慕粉4353249
    2016-12-13 16:58:43

    如果遍历的集合里面的数太少的话,就会顺序输出,如果你输出7到8个左右的数,就会是无序的了,总而言之,集合里面的数太少的话,输出的时候,就看不出是否是无序还是有序输出。

  • 慕粉4353249
    2016-12-13 16:58:00

    如果遍历的集合里面的数太少的话,就会顺序输出,如果你输出7到8个左右的数,就会是无序的了,总而言之,集合里面的数太少的话,输出的时候,就看不出是否是无序还是有序输出。

  • ValarRay
    2016-08-23 21:05:04

    我的也是一个顺序出的,求解

  • 纸书落梅
    2016-08-12 21:55:24

    我的也是这样。。改成5个之后老是按照一个顺序输出。

  • 横LOVE
    2016-07-30 20:41:56

    楼上说得对

  • 煎蛋的少年
    2016-07-28 20:42:08

    前面有个网友自问自答了,将for循环选课的次数增加到5次,就可以看出是无序的循环了。

    结合网友的评论,可能是jdk更新后有所改动,3次太少了。

    for (int i =0 ;i<5;i++){
    			System.out.println("请输入课程ID");
    			String conseld = console.next();
    			for (Course cr : st.coursesToselect){
    				if(cr.id.equals(conseld)){
    					student.courses.add(cr);
    				}
    			}
    		}


  • 慕粉18817939419
    2016-07-27 17:05:39

    你把代码贴一下看看,不会输出的是设置为List的Course当中的备选课程去了吧,你确认输出的是student当中的吗

  • 爱土豆
    2016-07-27 10:38:15

    是不是我的方法有错误?我是通过iterator去迭代set集合,但是执行的几次结果都是同一顺序输出的,我又add了4个int型数字,再获取还是一样的有序输出

  • 撒旦也疯狂
    2016-07-26 11:31:49

    set不是那个出了名的无序,不可重复么

  • 慕粉3149164
    2016-07-26 11:02:45

    输出是随机的,很有可能,你试了好几次都是按照某一个顺序输出的。

  • 兜兜姐
    2016-07-26 10:47:58

    Set集合是无序的。每次读取的顺序是不一样的,随机的、

  • 慕神8798436
    2016-07-26 10:25:30

    是随机出的