A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


22 个回复

倒序浏览
顶一下
回复 使用道具 举报
我看视频里老师的顺序是打乱的
回复 使用道具 举报
多运行几次就出现不一样的了。。
回复 使用道具 举报
715596417 发表于 2016-3-25 17:18
多运行几次就出现不一样的了。。

表示已运行一百次
回复 使用道具 举报
回复 使用道具 举报
Set集合类本来就是有序的啊
回复 使用道具 举报
恰巧 中级黑马 2016-3-25 18:03:46
8#
ShallDoll 发表于 2016-3-25 17:59
Set集合类本来就是有序的啊

我读书少你别骗我,List哭晕在厕所。
回复 使用道具 举报
恰巧 发表于 2016-3-25 18:03
我读书少你别骗我,List哭晕在厕所。

List的有序是指怎么存就怎么取,有索引,而不是对元素进行排序.
而Set不能保证怎么存怎么取,所以认为Set是无序的.
HashSet对元素的排序是依赖于重写hashCode和equals实现的.
而TreeSet对元素的排序则是依赖于重写comepareTo方法实现的或实现Comparator接口来实现的.
回复 使用道具 举报
ShallDoll 发表于 2016-3-25 18:13
List的有序是指怎么存就怎么取,有索引,而不是对元素进行排序.
而Set不能保证怎么存怎么取,所以认为Set是 ...

我没有重写hashCode和equals方法啊,按视频里老师的代码写,他的运行结果就是随机排列的,我的是有序的
回复 使用道具 举报
恰巧 发表于 2016-3-25 18:21
我没有重写hashCode和equals方法啊,按视频里老师的代码写,他的运行结果就是随机排列的,我的是有序的 ...

有序是指怎么存就怎么取,而不是对元素进行排序.
没有重写就排序是因为所有类都继承了Object类,没有重写HashSet就是按照hash值进行排序的.
TreeSet是按字典顺序进行排序的
回复 使用道具 举报
ShallDoll 发表于 2016-3-25 18:13
List的有序是指怎么存就怎么取,有索引,而不是对元素进行排序.
而Set不能保证怎么存怎么取,所以认为Set是 ...

正解,,,,,,,,,,,,,,
回复 使用道具 举报
ShallDoll 发表于 2016-3-25 18:38
有序是指怎么存就怎么取,而不是对元素进行排序.
没有重写就排序是因为所有类都继承了Object类,没有重写Ha ...

明白了,谢谢,但是老师的为什么会排出来DBCA这样的顺序呢?
回复 使用道具 举报
恰巧 发表于 2016-3-25 18:49
明白了,谢谢,但是老师的为什么会排出来DBCA这样的顺序呢?

截图看看
回复 使用道具 举报
多运行几次看看还这样吗?
回复 使用道具 举报


回复 使用道具 举报
LLQALLQ 发表于 2016-3-25 21:42
多运行几次看看还这样吗?

是的。。
回复 使用道具 举报
这就是个迷了
回复 使用道具 举报
  1. HashSet< Integer> hs = new HashSet<>();
  2.                 hs.add(10000000);
  3.                 hs.add(2);
  4.                 hs.add(10);
  5.                 hs.add(3000);
  6.                 hs.add(40);
  7.                 hs.add(5);
  8.                 System.out.println(hs);
  9.                
  10.                 HashSet< Character> hs1 = new HashSet<>();
  11.                 hs1.add('a');
  12.                 hs1.add('d');
  13.                 hs1.add('g');
  14.                 hs1.add('b');
  15.                 hs1.add('h');
  16.                 System.out.println(hs1);
复制代码

输出的结果是
[2, 3000, 5, 40, 10, 10000000]
[g, d, b, a, h]


我试了一下,应该是基本数据类型都会打乱顺序,而像String那种就不会。个人猜测是hash算法的问题。

回复 使用道具 举报
我也不太清楚,hash底层是怎么排序的,个人猜想是跟二进制值或十六进制值有关
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马