如何将 ojalgo 稀疏数组存储到 java 中的文件?

How to store ojalgo sparse array to file in java?

我目前有一个 SparseStore 矩阵,我在上面执行大量计数和计算。我想将它存储到文件中,这样我以后就可以重用它而无需重新进行之前的所有计算。

我在 Java 中尝试了基本序列化:

ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(exportFileName));
outputStream.writeObject(mySparseStoreInstance);

但 class 似乎没有实现 java.io.Serializable:

java.io.NotSerializableException: org.ojalgo.matrix.store.SparseStore

我不介意更改为 Array2D 或其他一些 ojalgo 稀疏结构,但也找不到是否可以序列化这些结构。

将稀疏数组存储到文件的建议是什么?

没有内置功能。此时你必须自己实现一些东西。使用 nonzeros() 提取索引值对并写入文件,然后使用 set(index, value) 一个一个地重新创建。以严格递增的索引顺序添加新元素并不是非常低效。