我读到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]
为什么要对值进行排序?
答案 0 :(得分:0)
无法保证它始终有序。正如在评论中已经说明的那样,在这种情况下,如果您感兴趣,为什么要检查Javadoc。
基本上它使用散列函数(正如您可能已经猜到HashSet
)将值映射到特定的“桶”或内存中的位置以便快速查找(即检查集合成员资格等)。一个简单的例子是值mod
需要一些数字(即'桶'的数量)来确定存储值的“桶”,在您的情况下,该值最有可能大于您添加的值整数,因此它们按顺序排列。