gpt4 book ai didi

java - 为什么 HashSet 中的元素是随机排列的?

转载 作者:行者123 更新时间:2023-11-29 10:11:53 24 4
gpt4 key购买 nike

我想知道元素在 HashSet 中的位置是如何确定的。是通过一些内置的哈希函数吗?

Set <String>set=new HashSet<String>();
set.add("January");
set.add("February");
set.add("July");
set.add("August");
set.add("September");
set.add("October");
set.add("Novermber");
set.add("December");
set.add("March");
set.add("April");
set.add("May");
set.add("June");


Iterator <String>it=set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}

我得到了这个结果

June
October
December
September
May
March
Novermber
July
January
February
April
August

这个命令或输出的解释是什么?

最佳答案

HashSet 基于数组。数组中的项目索引是根据hashCode()函数计算的。

HashSet 中的迭代器遍历数组元素,跳过空元素。这就是为什么您的订单是“奇怪的”。如果您需要保留插入顺序,请使用 LinkedHashSet

关于java - 为什么 HashSet 中的元素是随机排列的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30671239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com