在HashSet中排序

时间:2014-02-14 00:33:51

标签: java collections

我读到java.util.HashSet没有排序。但是,当我执行此代码时

import java.util.*; 

public class Example {  
    public static void main(String[] args) { 
        Set set = new HashSet();  
        set.add(newInteger(5));  
        set.add(new Integer(2)); 
        set.add(new Integer(1)); 

        System.out.println(set);
    }
}

输出

[1, 2, 5]

为什么要对值进行排序?

1 个答案:

答案 0 :(得分:0)

无法保证它始终有序。正如在评论中已经说明的那样,在这种情况下,如果您感兴趣,为什么要检查Javadoc。

基本上它使用散列函数(正如您可能已经猜到HashSet)将值映射到特定的“桶”或内存中的位置以便快速查找(即检查集合成员资格等)。一个简单的例子是值mod需要一些数字(即'桶'的数量)来确定存储值的“桶”,在您的情况下,该值最有可能大于您添加的值整数,因此它们按顺序排列。