gpt4 book ai didi

java - 在 Java 中将大文件标记为哈希表

转载 作者:搜寻专家 更新时间:2023-11-01 03:28:06 26 4
gpt4 key购买 nike

我遇到了这个问题:我正在读取 900 个文件,在处理这些文件之后,我的最终输出将是 HashMap<String, <HashMap<String, Double>> .第一个字符串是文件名,第二个字符串是单词,double 是单词频率。处理顺序如下:

  • 读取第一个文件
    • 阅读文件的第一行
    • 将重要的标记拆分成一个字符串数组
    • 将字符串数组复制到我的最终映射中,增加词频
  • 对所有文件重复

我正在使用字符串 BufferedReader .问题是,在处理完第一个文件后,Hash 变得很大,一段时间后性能非常低。我想听听解决方案。我的想法是创建一个有限的散列,在达到限制后存储到一个文件中。这样做直到处理完所有内容,最后混合所有哈希。

最佳答案

为什么不一次只读取一个文件,并将该文件的结果转储到磁盘,然后读取下一个文件等?显然每个文件在映射方面都独立于其他文件,那么为什么在编写第二个文件时保留第一个文件的结果?

您可以将每个文件的结果写入另一个文件(例如 foo.txt => foo.txt.map),或者您可以创建一个在结果之间使用某种分隔符的文件,例如

==== foo.txt ====
word - 1
the - 3
get - 3
==== bar.txt ====
apple - 2
// etc

顺便问一下,你为什么使用 double 作为频率?当然应该是一个整数值...

关于java - 在 Java 中将大文件标记为哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8015903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com