gpt4 book ai didi

java - Set<> = Sets.newHashSet()

转载 作者:行者123 更新时间:2023-12-01 14:46:11 29 4
gpt4 key购买 nike

好的,所以我重新整理了这篇文章,使其更容易理解(对所有的 Pastebin 感到抱歉,但堆栈溢出在代码格式化方面很愚蠢)

请注意,我不打算存储如下所述的大量数据。我使用我所说的数量的主要原因是为了尽可能地提高效率。

假设我有以下代码

将添加到 DropItemQueue 的方法(从洪水填充(深度为 0)开始,其他参数无关紧要)

http://pastebin.com/3wqEb5cM

这是同一个类,然后它将调用 Utils 中的 dropItem 方法

http://pastebin.com/yEUW9Wad

我的Utils.dropItem方法如下

http://pastebin.com/c0eaWeMA

这是ServerTickHandler.addDropItemQueue方法及其变量存储

http://pastebin.com/Q4p5a4ja

这是 DropItemQueue 类

http://pastebin.com/wxCj9imN

如果我要说向此哈希集添加 100000000 个元素,我注意到大约需要 2 秒的时间

使用迭代遍历哈希集中的所有内容此迭代器每 1/20 秒调用一次

http://pastebin.com/zSWg1kKu

每次迭代 2 秒看起来并不多,但使用这么多元素来删除存储在哈希集中的每个元素,大约需要 50 天

每次将一个元素解析为哈希集时,maxTicks 都会比之前添加的元素多 1,因此基本上每 1 秒就会删除一个项目,但由于需要 2 秒来迭代所有内容,因此实际上需要 3 秒才能删除一个项目这将需要大约 150 天的时间来完成迭代并清除所有元素并完成

我的问题是,使用最大元素较少的多个哈希集(比如 1000 个元素)会更快吗?

是的,这会给我 100000 个哈希集,但由于它们每个都较小,迭代时间会更慢(所有这些都会提高效率)或者除了哈希集之外我可以使用更好的东西还是哈希集最好用什么?

请注意,如果我确实使用了较小迭代的多次迭代,由于跨线程数据冗余,我将无法使用线程

最佳答案

HashSet 数据结构的设计实际上只有一个目的,即回答“此集合是否包含此项目”这一问题。对于任何其他用途,它不一定是最有效的。

对于您的使用来说,队列似乎是更好的选择。

关于java - Set<> = Sets.newHashSet(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15418948/

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