-
无序性不等于随机性
import java.util.HashSet; public class HashSetDemo { public static void main(String[] args) { HashSet set = new HashSet(); set.add(456); set.add(123); set.add("cc"); set.add("aa"); set.add(789); System.out.println(set); } }
输出结果为:
[cc, aa, 789, 456, 123]
-
输出不是输入的顺序,但并不是随机输出,即使运行多次输出结果都是相同的
-
HashSet存储数据在并非按照数组索引顺序添加,而是根据数组的哈希值存储
-
添加元素时,通过元素的哈希值,在调用哈希算法计算元素在数组中应该存储的位置
因为每个元素对应的哈希值唯一,所以存储位置也唯一确定.因此在某种意义上来说,HashSet也是有序的