使用HashSet存储数字的排序的问题

来源:互联网 发布:排序算法效率比较 编辑:程序博客网 时间:2024/06/01 09:44

利用hashset实现随机出1000个不重复的数字的过程中发现了集合输出数字排序的问题。

Set<Integer> nums = new HashSet<Integer>();        int count = 0;        while(true){            count++;            int num = (int) (Math.floor(Math.random()*1000)+1);            System.out.println(num);            nums.add(num);            int size = nums.size();            if(size==1000){                break;            }        }        System.out.println("-----------"+count+"------------");        for(Integer i : nums){            System.out.println(i);        }

虽然利用hashset不重复的特点存储了1000个不重复的数据。但是输出的时候却是顺序输出的。hashset是无序集合,所指的无序应该指的是存入的顺序和输出的顺序是不同的,内部应该还是经过了哈希值来排序的,但是这个顺序输出的结果还是令人很惊讶!
这里写图片描述

不知道集合内部是如何排序的,还是输出有问题?
但是直接存入数字,再输出的时候,就是正常的无序状态

这里写图片描述

不管存入的顺序如何,但是输出结果的顺序不变!看来内部的排序肯定也有一定的规则!

0 0