海量数据的 Java HashMap/List 替代方案

标签 java memory hashmap

在我的 Java 应用程序中,我必须扫描文件系统并递归存储已创建文件的路径,以便进行早期搜索。

我尝试使用 List/ArrayList 和 HashMap 作为存储结构,但是当文件系统包含 1.000.000+ 个文件时,内存使用量太大。

如何在不使用一半 RAM (8 GB) 的情况下存储和快速检索这些“字符串”?

最佳答案

您正在主内存中存储大量字符串。无论您使用什么数据结构,它都会占用内存。一种方法可能不是始终存储整个路径,而是将它们存储在分层结构中,例如。将目录名称作为键存储在映射中,并将该目录的所有值作为值递归存储在列表中。

关于海量数据的 Java HashMap/List 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33407481/

相关文章:

java - 我应该使用哪个集合(键 - 值)?

c - 在C中动态分配结构体和其中的数组

python - Airflow Python 脚本随任务退出并返回代码 -9,如何解决?

java - 当从我的主类访问时,我的(正确的) HashMap 返回 null -(初学者)

java - Android 使用 PlaceAutoCompleteActivity (Google Places API)

java - 返回一个新对象作为java中的返回值

java - @RequestParam 的 Spring 转换器

python - 如何清除ipython中的变量?

java - 什么是 java HashMap 并发的解释,获取/设置键或值?

java - 如果 Keys 哈希码相同但 equals 方法返回 false,HashMap 如何检索不同的值