我正在尝试找出要解决此问题的最佳数据结构。我有一个索引文件(~200000条记录),其中包含帐号,唯一ID,日期,pdf表单名称,税码。根据从文件中读取的这些值,我必须分配一些操作(免除,删除,税收等)。一旦分配了操作,我就可以调用实现此操作的必要方法。 庞大的数据量是我无法决定的原因。有什么建议?
答案 0 :(得分:0)
200,000条记录根本不是大量数据。
除非每条记录都必须引用另一条记录,否则您可以流式传输该文件。读取一行,将其转换为对象,根据需要处理该对象,调用必要的操作,然后转到文件中的下一行。
使用此方法,数据的内存占用几乎为零。
或者,您可以读取文件并在一个线程中每行创建一个对象,将每个对象放在队列中,并使用一个或多个工作线程将对象从队列中取出并处理它们。这将以一些内存为代价更好地利用多核CPU,具体取决于队列的大小。您当然可以设置最大队列大小以避免内存不足(文件读取器线程将在队列满时暂停,直到它变满)。