【发布时间】:2012-04-14 16:04:48
【问题描述】:
让 Person 是一个具有 name、age 和 idNumber 属性的类。我想要一个“人”的集合,并且我希望能够以最有效的方式执行以下操作:
- 通过 idNumber 检索它们。
- 获取年龄 > X 的人员列表。
- 获取按姓名字母顺序排列的所有人员的列表。
我的想法是同时维护一个使用 id 作为键的 Hashmap 和使用年龄和名称作为每个 TreeMap 键的两个 Treemap。
- 这是最好的方法吗?
- 是否有必要在编辑年龄之前从年龄 TreeMap 中删除一个人,然后再将其放回?
- 如果对问题 2 的回答是肯定的,当这些人被使用并可能在多个地方被编辑时,我该如何处理?
【问题讨论】:
-
如果
id将(大部分)连续,您不妨使用普通数组。 -
这是“国民身份证号码”,不是连续的:)
-
对于名称,您应该考虑使用
trie -
我不明白前缀树如何帮助我。我不想要一个名字的集合,而是一个有名字的对象的集合。我如何在 Trie 上做到这一点?
-
这是作业,对吧?
标签: java data-structures map