存储多个哈希映射与存储一个包含java httpsession对象

时间:2018-01-02 04:38:57

标签: java list hashmap httpsession

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

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

我可以想到哪个专业人员存储为单独的哈希映射,我们不需要迭代列表来查找值是否存在。

1 个答案:

答案 0 :(得分:2)

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

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

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

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