我有一个包含不同单词和信息的词汇表。它的大小约为100MB。然而,搜索这个文件需要很长时间。有什么方法可以提高我查找数据的速度吗?例如,我正在考虑编写一个程序,将文本文件拆分为26个不同的文本文件(按单词的第一个字母),然后,程序只需要检查给定单词的第一个字母,就可以搜索一个小得多的文件。这会提高程序的执行时间吗?有什么有效的结构化数据可以存储文件吗?例如json。另外,数据库呢?我使用静态编程语言/Java。
编辑:到目前为止,我只是暴力搜索了整个文件,直到找到匹配项。但是,正如我所说,该文件是
实现这一点有多种方法:
这取决于可用的内存。如果整个词汇表可以在不降低性能的情况下放入内存,那么HashMap
(如果每个单词都有关联值)或HashSet
(如果没有)针对快速查找访问进行了特别优化。如果不能将所有内容保存在内存中,您可以使用带有要查找单词索引的数据库。Apache Derby是一个轻量级数据库,可以很好地与Java接口,但HSQLDB、H2或SQLite也是不错的选择。
也许可以将映射(key=word,value=word信息)保存在JSON文件中。然后,您可以在程序中加载JSON,提取HashMap,并找到您想要的单词(因为哈希查找非常快)。
问题内容: 我必须在text [csv]文件中写入大量数据。我使用BufferedWriter写入数据,并且花费了大约40秒的时间来写入174 mb的数据。这是Java可以提供的最快速度吗? 注意:这40秒还包括从结果集中迭代和获取记录的时间。:) 174 mb用于结果集中的400000行。 问题答案: 你可以尝试删除BufferedWriter并直接使用FileWriter。在现代系统上,无论如
测试数据 # linecache_data.py import os import tempfile lorem = '''Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus eget elit. In posuere mi non risus. Mauris id quam posuere lectus soll
我需要从全球网格中提取特定节点集的数据,这些节点由纬度/经度坐标给出(大约5000-10000)。这些数据是水力参数的时间序列,例如波高。 全球数据集是巨大的,所以它被分成许多NetCDF文件。每个NetCDF文件大约5GB,包含整个全球网格的数据,但只针对一个变量(例如波高)和一年(例如2020年)。假设我想在某个位置提取6个变量的完整时间序列(42年),我需要提取数据形式为6x42=252个N
问题内容: 假设您有一个较大的ASCII文本文件,每行上都有一个随机的非负整数,每个整数的范围从0到1,000,000,000。文件中有100,000,000行。读取文件并计算所有整数之和的最快方法是什么? 约束:我们有10MB的RAM可以使用。该文件的大小为1GB,因此我们不想读入整个内容然后进行处理。 这是我尝试过的各种解决方案。我发现结果相当令人惊讶。 有什么我想念的更快的东西吗? 请注意:
本文向大家介绍加载文本文件并查找文件中的字符数-JavaScript,包括了加载文本文件并查找文件中的字符数-JavaScript的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个data.txt文件,该文件与NodeJS文件位于同一目录中。假设该文件的内容是- 我们需要编写一个JavaScript函数,将此外部文本文件加载到我们的js文件中并返回此文件中的字符数。 示例 让我们为该函数编写
问题内容: 我有两个文件,和。 有大约14000条线,大约有20亿条线。 每行有一个字段,而有3个字段,通过,以分隔。 我想从中找到匹配项的所有行(或者,如果我们不想花费额外的时间来拆分的值,则可以找到行中的任何行)。 file1.txt(大约14000行, 未排序 ): file2.txt(大约20亿行, 未排序 ): 预期输出: 这是我尝试过的,似乎要花几个小时才能运行: 我想知道是否有更好,