我的矩阵很大,但是很多条目都是空的。
因此,我尝试使用AVL树的向量,其中向量的长度约为20 7 ,每个AVL树具有大约110,000个节点(总共20 7 < / sup>·110,000个节点)。
但是现在,当我将问题的大小增加到90,000时,由于出现了太多的节点,并且配置了JVM的最大堆大小为2 GB,我将收到“超出了GC OverHeader限制”错误。>
我想知道是否还有另一种有效地实现稀疏矩阵的方法?
如果有帮助:创建稀疏矩阵后,我不需要修改它。我只需要构建一次,然后进行有效的查找即可。
答案 0 :(得分:0)
在https://en.wikipedia.org/wiki/Sparse_matrix#Storing_a_sparse_matrix上有一个关于稀疏矩阵数据结构的很好的总结,但是当然,这一切都取决于您需要使用它做什么。如果只需要查找,我希望哈希表比平衡树更节省空间。尝试java.util.HashMap不会花很长时间。