Java零矩阵内存使用情况

时间:2014-11-09 01:42:20

标签: java

我一直在努力理解以下问题。

零矩阵必然是内存有效吗?零矩阵成本更低的内存(或不花费任何内存)?

我试图在java中验证它,但事实证明已经为指定的大小分配了内存。

我不确定C / C ++或其他语言,如matlab和octave,以及它们如何管理矩阵和矢量内存;

我之所以要问这个是想要构建一个庞大的稀疏矩阵,但大多数条目都是零,事实证明java不是一个好选择,因为java中的零矩阵仍然需要大量内存。有没有人有这个问题的经验?不知道你如何处理它,你的帮助将不胜感激。

由于

2 个答案:

答案 0 :(得分:1)

直接零填充矩阵将以任何语言花费您:分配的金额不取决于您填写的数字。

看看例如提供稀疏矩阵支持的UJMP和许多算法。可能存在其他实现。

一般情况下,如果您发现某些内容难以实施但可能有用,请访问google以获取开源库。机会已经发明了许多轮子。

答案 1 :(得分:0)

因为您必须为矩阵分配空间,所以它将占用空间,而不管它将保留哪些数字。 (即使是null)。

但是我可以想象某个地方有人设计了一个数据结构来处理这个问题。

在我脑海中浮现的第一件事是你可以创建一个数据结构,其中包含具有相应值的位置。如果你要求在不存在的给定位置处的值,则可以返回0.当然,对于只有几个零的小矩阵或矩阵,这将是低效的。只是一个想法。