首页 > 解决方案 > 将大量特定对象存储在内存中以便稍后筛选以找到特定对象的最佳实践?

问题描述

我正在设计一个系统,其中我有一个有点复杂的对象,称为 Item。项目看起来有点像这样:

public class Item {
    String name; //name for item
    int id;// id of the item to be used for index and lookup purposes internally
    //lots of internal methods for management, getters and setters, etc
....

我需要能够,给定一个特定的id,找到一个特定的引用Item。我知道有大量的容器数据类型,但我不知道哪一种效果最好。由于我正在通过 搜索int,我认为哈希表不合适,而且我确信一旦涉及足够的项目,常规旧数组会导致性能问题。

这是我可能最终遇到的场景示例。

一个idof404被传递给一个查找函数。此函数搜索数据结构以查找匹配的项目404并返回该项目的新实例。

所以我认为也许 aMap会做?请赐教

a) 这是否是查找an所指的特定Item对象的好方法id

b) 哪些数据类型非常适合我选择采用的策略。

标签: javadata-structures

解决方案


如果您希望将所有内容保存在内存中,我相信 Hashtable 是您想要使用的。您可以使用 Hashtable 的 Java HashMap 实现https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html


推荐阅读