gpt4 book ai didi

java - Java中大查找值的高效实现

转载 作者:行者123 更新时间:2023-12-01 06:55:45 25 4
gpt4 key购买 nike

我有 TCP/UDP 端口号及其字符串描述的列表:

http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

现在它的形式是HashMap,其中端口号作为键,字符串描述作为值。它可能不是那么大,但我必须在数据包到来时实时查找端口描述,正如您可以想象的那样,这需要有效的检索,否则会大大减慢处理速度。

最初我想实现巨大的 switch case/break 逻辑或者 if, else if 但这听起来太破旧了,所以我想出了这个 hashMap。

现在我想知道如果查询始终相同,Java 是否有类似缓存机制的东西来加速?大多数情况下,查询的端口是 80、443、23、22 等,很少有其他服务类型的数据包到达。

我的选项:

  • 对于大多数情况,我应该在开始时进行一些 else-if 检查吗?常见类型,如果之前没有找到,则恢复到此 hashMap

  • 我应该继续使用这个 hashMap 来为我进行搜索

  • 我应该恢复到其他一些聪明的方式来做到这一点吗?

请提出建议。

最佳答案

测量过这需要多长时间吗?我怀疑,与您正在执行的其他操作相比,在具有合理数量的存储桶的 HashMap 中进行查找将可以忽略不计

与此类问题一样,在解决假设的性能问题之前,非常值得对其进行衡量。 过早的优化是万恶之源,如they say .

关于java - Java中大查找值的高效实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12582967/

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