当前位置: 首页 > 知识库问答 >
问题:

相同对象上的多个数据结构

邢星波
2023-03-14

让Person是一个具有属性name、age和idNumber的类。我希望有一个“人”的集合,我希望能够以最有效的方式执行以下操作:

  1. 通过他们的ID号检索他们。
  2. 获取年龄的人的列表

我的想法是同时维护一个使用id作为键的Hashmap和两个使用age和name作为每个树映射键的树映射。

  1. 这是最好的方式吗

共有1个答案

太叔志文
2023-03-14

这是最好的方式吗?

我会说使用关系数据库和适当的索引是最好的方法,但是如果你想在内存中这样做,那么是的——你是在牺牲内存来换取性能。

是否有必要在编辑年龄之前从年龄树映射中删除一个人,然后将其放回?

是的。项目在树中的位置在添加时确定一次。如果可比属性(agename)更改,TreeMap不会神奇地发现并移动对象。这很可能导致无法在地图中找到元素,即使它在那里。

如果问题2的答案是肯定的,那么当这些人在多个地方被使用并可能被编辑时,我该如何处理?

首选不可变对象,因此不可能更改已放置在树中的对象。如果因为某种原因,你不能负担这个,考虑观察者模式——当在地图中存储<代码>人>代码时,在那个<代码>人< /代码>中登记一个侦听器。例如,age更改时,侦听器会通知一棵树(或另一个观察者)按年龄存储人,并处理删除和添加。

顺便说一句,如果你在修改对象后试图删除它,你会失败-TreeMap将不再能够找到要删除的对象...

 类似资料:
  • 问题内容: 好的,这是我的难题,我建立了一个数据库,其中包含约5个表,所有表的数据结构完全相同。出于本地化的目的,以这种方式分离了数据,并总共分割了约450万条记录。 在大多数情况下,只需要一张桌子就可以了。但是,有时需要两个或多个表中的数据,并且需要按用户定义的列对数据进行排序。这就是我遇到的问题。 数据列: MySQL陈述: MySQL吐出这个错误: 显然,我做错了。有人愿意为我阐明一下吗?

  • 问题内容: 我试图在相同的数据上有两个轴。 数据是一对。情节是a ,我有两个和一个。 对于y值,所有数据均以米为单位,我希望有一个轴以米为单位显示该轴,以英尺为单位显示该数据。现在,这感觉很普通,但是我无法决定最明显的方法。一种有效的方法是复制数据并以英尺为单位设置y值,然后添加另一个并完成该操作。 但是我认为,子类化或向其注入一些功能以缩放值会更明智。还是我应该采用第一种方法? 你怎么看? 问题

  • 我试图在相同的数据上有两个轴。 数据是两个。该图是,我有两个和一个。 所有的数据是以米为y值,我想有一个轴显示它在米和一个轴显示它在英尺。现在这感觉像是一件常见的事情做,但我不能决定最明显的方式来做它。一种可行的方法是复制数据,并在脚中使用Y值,然后添加另一个并使用它。 但是我认为更明智的做法是将子类化,或者在中注入一些功能来缩放值。还是我应该采用第一种方法? 你觉得呢?

  • 问题内容: 我正在尝试调整SQL查询以检查服务器上每个数据库中存在的特定字段中存在的值。 有100个单独的数据库,我想检查每个数据库的特定记录。 答案可能是使用下面的命令,但是我很难适应它。 我在下面的链接上获得了更大的成功; https://stackoverflow.com/a/18462734/3461845 我需要能够执行以下查询: 并且还为返回的每一行拉回数据库的名称; 任何帮助是极大的

  • 目前我正在做一项与多边形相关的工作。多边形可以描述为几个顶点。 现在,我有一些多边形已经矢量 一种方法可以告诉我,一个点在哪个多边形内 我需要设置返回的多边形的颜色。 我的第一个问题是如何知道返回的多边形是否在向量内 我的第一个想法是使用无序的集合和比较(vertex.begin(),vertex)。end())。我不知道是否有更好的主意。 另一个问题是某些多边形可能包含相同的边。如何设计数据结构

  • 问题内容: 我们在项目中使用MYSQL和Hibernate。 JPA用于将对象持久存储在DB中。 我们有多个具有相似代码的类 现在我们也想对oracle提供支持。我们应该怎么做?oracle不支持strategy = GenerationType.AUTO。 一个解决方案是我们可以在每个POJO中定义我们不想做的序列吗? 请提供一些建议,以便我们继续前进。 问题答案: AUTO策略也应适用于Ora