gpt4 book ai didi

java - 查找集合中是否存在某个值(小集合,每秒检查几次)

转载 作者:行者123 更新时间:2023-11-29 05:59:11 30 4
gpt4 key购买 nike

我需要实现一种非常有效的方法来检查某个键(长值)是否存在于 java 中的一小部分项目(少于 100,通常在 10 左右)中。

此检查必须尽可能高效,因为它将每秒进行几次(超过 1000 次,我正在处理多播提要,我想丢弃不需要处理的消息) .

需要检查的项目在应用程序生命周期内几乎不会发生变化,而且在性能方面可能代价高昂。

谢谢

Thanks for all the prompt replies. My concern is that my long keys might be very concentrated in a small range of the long, and I'm worried about it. If you guys think that it wont be an issue, I'll give it a try.

最佳答案

使用 HashSet<Long> - contains() 需要纳秒(字面意思)返回。

像这样编写代码:

private static Set<Long> keys = new HashSet<Long>();
// populate keys

if (keys.contains(requestKey)) { // this call is super fast!
// ignore request
}

编辑:

不要担心您的多头“接近”在一起。 hashCode()Long足够“分散”以至于对于所有实际目的没有模式 - 也就是说,“接近”的多头没有“接近”的哈希码。

关于java - 查找集合中是否存在某个值(小集合,每秒检查几次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10818268/

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