我有一个包含两列的大型 CSV 文件(8000 行)。第一列是1~10000的整数,第二列是6~10个字符的字符串。因为我的实现是在 Android 中,我使用 AssetManager 访问文件,所以我必须使用 InputStream 从文件中读取。
系统的输入是从 1 到 10000 的整数,输出是相应的字符串,如果没有整数匹配,则为 null。该应用程序的一般用例涉及多个(约 4 个)这样的请求,在我当前的实现下,每个请求都会将应用程序冻结 2-3 秒。
我希望能够使用电话簿(即 O(log(n)) 时间)搜索有效地进行此搜索,而无需将整个文件存储在内存中。我假设我应该将文件从 CSV 重新格式化为其他格式……也许是 SQL 数据库?对于这种情况,合适的实现是什么?
我对大规模数据访问完全不熟悉,老实说,我对文件如何以及何时加载到内存并在 Android 上访问的心理模型有点模糊。提前致谢。