在JavaHttpSession对象中存储多个hashmaps与存储一个包含所有hashmaps的列表

在JavaHttpSession对象中存储多个hashmaps与存储一个包含所有hashmaps的列表,java,list,hashmap,httpsession,Java,List,Hashmap,Httpsession,一旦我们从web服务检索到数据,我们需要在httpSession中存储一个哈希映射,这样我们就不会再次触发此web服务。应用程序中可能有多个哈希映射。我们可以将它们单独存储为一个单独的哈希映射,或者将它们全部存储在一个列表中,并将单个列表对象存储在httpSession中 从性能和内存的角度来看,在存储这些对象时,哪种方法更好?单独的哈希映射或包含所有这些哈希映射的列表 我能想到的另一个优点是,我们不需要迭代列表来查找值是否存在。与其将其存储为HashMap列表,不如将其存储为HashMap的H

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

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


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

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

例如:-如果您的hashmap类型为
hashmap
,则可以创建一个hashmap>,其中key是存储的hashmap的唯一标识符。如果要单独存储这些密钥,请使用此密钥

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


说到性能或内存优化,这很难猜测,尽管我猜不会有太大的区别,您必须使用一些分析工具,如yourkit、AppDynamics、visualVM来解决这个问题。

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