首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HashSet中的数据检索

HashSet中的数据检索
EN

Stack Overflow用户
提问于 2018-10-25 08:51:37
回答 5查看 383关注 0票数 1

我想知道在HashSet中以哪种方式检索数据--我按不同的顺序插入了数据,输出数据的顺序不同。有人能告诉我这背后的逻辑吗?

代码是这样的:

代码语言:javascript
复制
    class Test 
    { 
        public static void main(String[]args) 
        { 
            HashSet<String> h = new HashSet<String>(); 

            // Adding elements into HashSet using add() 
            h.add("India"); 
            h.add("Australia"); 
            h.add("South Africa"); 
            System.out.println(h); 
        }
}

产出:-南非、澳大利亚、印度

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-10-25 08:56:13

来自HashSet的Javadoc

它不能保证集合的迭代顺序;特别是,它不能保证随着时间的推移,顺序将保持不变。

票数 3
EN

Stack Overflow用户

发布于 2018-10-25 09:01:33

HashSet与HashMap具有相同的值。此外,它在内部使用HashMap,其值常量对象称为“存在”。通过执行此操作,HashSet保证唯一性,但不对其排序,以类似于哈希映射的方式定位set元素。

您可以看到HashSet在互联网上的实现。

票数 0
EN

Stack Overflow用户

发布于 2018-10-25 09:02:20

如前所述,HashSet中元素的排序不能保证是任何东西,也不会随着时间的推移而保持不变。

这是由于底层数据结构的性质所致。

在您的示例中,字符串似乎存储在LIFO队列中,但HashSet的另一个实现可能会执行不同的操作(即使是这个实现也可能随着更多项的插入而开始不同的行为)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52985177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档