java - 将大量特定对象存储在内存中以便稍后筛选以找到特定对象的最佳实践?
问题描述
我正在设计一个系统,其中我有一个有点复杂的对象,称为 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
,我认为哈希表不合适,而且我确信一旦涉及足够的项目,常规旧数组会导致性能问题。
这是我可能最终遇到的场景示例。
一个id
of404
被传递给一个查找函数。此函数搜索数据结构以查找匹配的项目404
并返回该项目的新实例。
所以我认为也许 aMap
会做?请赐教
a) 这是否是查找an所指的特定Item
对象的好方法id
和
b) 哪些数据类型非常适合我选择采用的策略。
解决方案
如果您希望将所有内容保存在内存中,我相信 Hashtable 是您想要使用的。您可以使用 Hashtable 的 Java HashMap 实现https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html
推荐阅读
- python - HTML 到 Word 文档
- python - 使用排序列更有效地获取数据框中最小元素的整体分布
- angular - 在所有组件中导入所有模型是不好的做法吗?
- windows - git - 切换到本地开发,然后返回功能分支重置修改/添加文件的状态
- mysql - 在这种情况下,是什么导致 MySQL 错误 1071(密钥太长)?
- reactjs - 使用 Reactjs 显示每个表单提交的 Json 响应数据
- android - 如何在 Xamarin Android 中获取导航栏高度?
- powershell - 从模块导出函数时,延迟绑定脚本块不起作用
- wayland - Wayland 和显示待机
- postgresql - PostgreSQL:NOT IN 子句导致“列太多”错误