存储多个散列图与在 java httpsession 对象中存储一个包含所有散列图的列表

Storing multiple hashmaps vs storing one list with all the hashmaps in java httpsession object

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

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

我能想到将其存储为单独的哈希映射的一个优点是我们不需要迭代列表来查找值是否存在。

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

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

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

关于性能或内存优化,很难猜测,虽然我猜测不会有太大差异,您必须使用一些分析工具,如 yourkit、AppDynamics、visualVM 弄明白了。