java - 在 Java 中搜索大型 csv 的最佳/有效方法

标签 java algorithm csv search

我有一个较大的 csv 文件,其中包含 1.5K 个条目。每个条目代表全局的一个城市,具有名称、纬度和经度。在 Java 中搜索 csv 的最佳和快速方法是什么?我想用所有条目填充一个 ArrayList,但我认为它很慢(除非我错了)。不,这个文件不会变大,差不多有 100KB。我希望能够输入城市名称并更新搜索结果;但这我可以自己弄清楚。

最佳答案

大约 1 MB 的 1.5K 条目文件应该花费数十毫秒。一个 1 GB 的文件可能需要几十秒,可能值得为此文件保存一个索引,以免每次都重新读取它。

您可以加载到 map 中以通过 name 进行索引

您可以通过 NavigableMap 添加纬度和经度索引。这将加快按位置查找的速度。

加载一次文件需要一点时间,但是每次从磁盘读取文件要慢得多。

顺便说一句,您可以拥有 100 TB 的数据和数万亿行,要在 Java 中使用这些数据,您必须发挥创意。

简而言之,如果它比你的内存少得多,它就是相对较小的文件。

关于java - 在 Java 中搜索大型 csv 的最佳/有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39187150/

相关文章:

java - 正则表达式分组

algorithm - 高效的并行握手(组合)

powershell - 修剪前导空格,然后将每行的第一个字母大写,如果行以特定字符串开头,则从另一个文件添加新行 + 字符串 + $var

java - 即使应用程序关闭,也尝试保存复选框的状态和该复选框内的数据

Java : how to call object of parameterised constructor on a button event

algorithm - 检测大型数据集中的重复/相似文本?

algorithm - 按顺序计算图中所有 k 个顶点的团

python - 写入 csv、Python、不同的数据类型

javascript - 将包含逗号和双引号的字符串写入 CSV

Java 泛型。泛型类型的数组