Java 在内存中存储大量特定对象以供以后筛选以查找特定对象的最佳实践?

Java 在内存中存储大量特定对象以供以后筛选以查找特定对象的最佳实践?,java,data-structures,Java,Data Structures,我正在设计一个系统,其中有一个称为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 ..

我正在设计一个系统,其中有一个称为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
的情况下,找到特定
项的引用。我知道有很多容器数据类型,但我不知道哪一种最适合。因为我是通过
int
进行搜索的,所以我不认为哈希表是合适的,而且我确信,一旦涉及到足够多的项,一个常规的旧数组就会导致性能问题

下面是一个我最终可能遇到的场景示例

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

所以我想也许一张
地图
就可以了?请告诉我如何做

a) 这是否是查找
id
所引用的特定
对象的好方法


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

如果您希望将所有内容都保存在内存中,我相信哈希表就是您想要使用的。您可以使用哈希表的Java HashMap实现

哈希表
是一个
映射
实现。您可以使用
哈希表
。它会很快地查找键。“我认为哈希表不合适”为什么不呢?使用(概念)是完全合适的,只要您不尝试使用(Java类),而是使用。您可能希望使用H2、Derby或SqlLite,并让db处理存储和查找。您不希望使用