Java 将数据保存在嵌套哈希表中对于内存管理和更好的性能来说都是一个好迹象

Java 将数据保存在嵌套哈希表中对于内存管理和更好的性能来说都是一个好迹象,java,object,collections,garbage-collection,Java,Object,Collections,Garbage Collection,我必须从您那里得到一些更好的意见或答案,以便通过收集对象和性能问题解决有关数据处理的问题 在这里,我从大约5到60万行中提取数据,以将其保存到收集对象中,我需要对每个类别进行非常具体的筛选,以访问选定的数据,通常我使用向量如果我想获取任何精确的数据,我应该遍历它的每个索引。由于这个原因,它减慢了我的表现 取而代之的是,我有一个计划,哈希表将保留一个键,并将其本身作为另一个哈希表的值,类似于它将以嵌套方式增长许多表。这是否是更好的解决方案,这是我的共同问题 注意:在oracle数据库中,每行包含大

我必须从您那里得到一些更好的意见或答案,以便通过收集对象和性能问题解决有关数据处理的问题

在这里,我从大约5到60万行中提取数据,以将其保存到收集对象中,我需要对每个类别进行非常具体的筛选,以访问选定的数据,通常我使用向量如果我想获取任何精确的数据,我应该遍历它的每个索引。由于这个原因,它减慢了我的表现

取而代之的是,我有一个计划,哈希表将保留一个键
,并将其本身作为另一个哈希表
的值,类似于它将以嵌套方式增长许多表。这是否是更好的解决方案,这是我的共同问题


注意:在oracle数据库中,每行包含大约15到17列(许多列是数组)。

为了回答标题中的问题,哈希表(哈希表或哈希表)提供了良好的查找性能(O(1)),但会消耗大量内存。内存开销在每个条目8个字的范围内。。。除了空格键和数值

使用哈希表来加速记录的查找是一种合理的折衷。然而,使用哈希表来表示记录的字段是个坏主意。最好使用一个自定义类,为表的每一列提供一个字段


然而,EJP的评论也很中肯。您应该考虑对数据库执行查询。在许多方面,构建数据和索引的内存副本并实现您自己的查询基础架构,这样做更好。

您的问题还不清楚。你能重新措辞吗?此外,中间的粗体字体也会让人分心。请重新格式化!请考虑下次以更好的格式发布问题,定义“更好”。我看不出你的第二个建议有什么积极的好处,还有很多额外的编码复杂性。我还想问你为什么要在内存中保存50万个项目。您应该为此使用数据库:这就是它的用途。