set集合

SteamPY 2012-08-06 10:00:15
set集合 是不重复的,无序的
为什么如下
Set<Integer> set=new HashSet<Integer>();
set.add(1);
set.add(4);
set.add(3);
set.add(8);
set.add(2);
System.out.println(set);
[1, 2, 3, 4, 8]

还是排了序了。求解释,谢了。
...全文
299 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
oa838182063 2012-08-06
  • 打赏
  • 举报
回复
不想要排序的就用linkedhashset
york246 2012-08-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

lz 不是你这样的 你可以再测试几组数据 就会发现其实set并没有排序~
[/Quote]


例如 set.add(100);
就会发现 其实并没有排序了
MiceRice 2012-08-06
  • 打赏
  • 举报
回复
你可以换成几个更大的数字来看看。

另外:Set本身只是个接口,它只是说“不保证有序,并不是说绝对不排序”。

具体类实现的效果也存在差异,比如 TreeSet 这个实现类:
A NavigableSet implementation based on a TreeMap. The elements are ordered using their natural ordering, or by a Comparator provided at set creation time, depending on which constructor is used.

就明确表示“The elements are ordered ”,采用:“natural ordering” 或 Comparator。


york246 2012-08-06
  • 打赏
  • 举报
回复
lz 不是你这样的 你可以再测试几组数据 就会发现其实set并没有排序~
LucEaspe 2012-08-06
  • 打赏
  • 举报
回复
难道是默认自然排序?
huangzunbao4320 2012-08-06
  • 打赏
  • 举报
回复
Set是接口,HashSet实现接口,默认是不排序,而TreeSet是默认是自然排序的
wwwcomcn123 2012-08-06
  • 打赏
  • 举报
回复
多运行几次
ftvbftvbq 2012-08-06
  • 打赏
  • 举报
回复
不想要排序的就用linkedhashset
绝世酱油瓶 2012-08-06
  • 打赏
  • 举报
回复
多输出几次。结果不一定全部一样。、
老紫竹 2012-08-06
  • 打赏
  • 举报
回复
那是你运气好,嘿嘿。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧