【问题标题】:Storing multiple hashmaps vs storing one list with all the hashmaps in java httpsession object存储多个哈希图与在 java httpsession 对象中存储一个包含所有哈希图的列表
【发布时间】:2018-01-02 04:38:56
【问题描述】:

一旦我们从 Web 服务检索数据,我们需要在 httpSession 中存储一个哈希映射,这样我们就不会再次触发这个 Web 服务。应用程序中可能有多个哈希映射。我们可以将它们单独存储为单独的哈希映射,或者将它们全部存储在一个列表中,并将该单个列表对象存储在 httpSession 中。

从存储这些对象的性能和内存角度来看,哪种方法更好?单独的哈希映射或包含所有这些哈希映射的列表。

我能想到的一个优点是,我们不需要迭代列表来查找值是否存在。

【问题讨论】:

  • 如果我的回答解决了您的问题,或者您对此有任何疑问,请告诉我?

标签: java list hashmap httpsession


【解决方案1】:

与其将其存储为HashMap的列表,不如将其存储为hashmap的hashmap,这样可以避免对列表的迭代,并且可以在O(1)中获得所需的HashMap。这使得它比 HashMap 列表更有效。

例如:- 如果您的 hashmap 是 HashMap<String,String> 类型,那么您可以创建一个 HashMap>,其中 key 是存储的 HashMap 的唯一标识符。如果您想单独存储它们,则无论如何都需要此密钥。

这与单独存储这些 hashmap 相同,但它是一种更简洁的方法,因为您知道您只需要处理 1 个数据结构,并且会提高代码的可读性。

在性能或内存优化方面,很难猜测,虽然我猜不会有太大差异,你必须使用一些分析工具,如 yourkit、AppDynamics、visualVM 来计算出来了。

【讨论】:

    猜你喜欢
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 2015-07-08
    • 2015-07-18
    • 2015-05-26
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多