Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哈希集排序算法,1-9位_Java_Algorithm_Hashset - Fatal编程技术网

Java 哈希集排序算法,1-9位

Java 哈希集排序算法,1-9位,java,algorithm,hashset,Java,Algorithm,Hashset,我谈到了一个奇怪的话题:为什么HashSet类按升序排列1到9位数字,而其余的数字不是按升序排列的。我知道HashSet关注的是速度。但是如果有人能解释为什么只对1到9的数字进行排序,我将不胜感激 例如: public static void main(String[] args) { int count[] = {3, 2, 3, 7, 6}; Set<Integer> set = new HashSet<>(); for

我谈到了一个奇怪的话题:为什么HashSet类按升序排列1到9位数字,而其余的数字不是按升序排列的。我知道HashSet关注的是速度。但是如果有人能解释为什么只对1到9的数字进行排序,我将不胜感激

例如:

public static void main(String[] args) {
        int count[] = {3, 2, 3, 7, 6};
        Set<Integer> set = new HashSet<>();
        for (int i = 0; i < 5; i++) {
            set.add(count[i]);
        }
        System.out.println(set);
    }


Output: [2, 3, 6, 7]
在int count[]的情况下{44,32,87,32,11};
输出:[32、87、11、44]

哈希集上的迭代顺序将取决于三个因素:

整数编码的实现 哈希集中哈希表的大小 HashSet上迭代的实现
观察到的行为只是一个巧合。

您尝试过其他数字集吗?主要是巧合。您采用的随机巧合可能与整数哈希代码的实现、哈希集中哈希表的大小以及哈希集上迭代的实现有关,假设它暗示了一些关于一位数的信息。这只是一个巧合。请注意,鉴于Integer.hashCode的实现和HashSet的默认存储桶大小,显示这种排序行为的应该是0到15(含0到15)范围内的任何数字。值得注意的是,记录了1和2,3取决于实现。