存储多个哈希映射与在java httpsession对象中存储一个包含所有哈希映射的列表

问题描述 投票:2回答:1

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

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

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

java list hashmap httpsession
1个回答
2
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.