gpt4 book ai didi

java - Java中的稀疏矩阵/数组

转载 作者:行者123 更新时间:2023-12-01 16:44:29 24 4
gpt4 key购买 nike

我正在开发一个用 Java 编写的项目,这需要我构建一个非常大的二维稀疏数组。非常稀疏,如果这有所作为。无论如何:这个应用程序最关键的方面是时间方面的效率(假设内存负载,虽然几乎没有无限到允许我使用标准二维数组 - 关键范围在两个维度上都是数十亿)。

在阵列中的数以千计的单元格中,将有数十万个单元格包含一个对象。我需要能够非常快速地修改单元格内容。

无论如何:有人知道为此目的特别好的图书馆吗?它必须是 Berkeley、LGPL 或类似的许可证(没有 GPL,因为该产品不能完全开源)。或者,如果只有一种非常简单的方法可以制作自制稀疏数组对象,那也可以。

我正在考虑MTJ ,但没有听到任何关于其质量的意见。

最佳答案

您可以只使用嵌套映射,但如果您需要对其进行矩阵演算,这可能不是最佳选择

 Map<Integer, Map<integer, Object>> matrix;

也许代替对象使用一些元组来存储实际数据,这样您就可以在提取后更轻松地使用它,例如:
class Tuple<T extends yourDataObject> {
public final int x;
public final int y;
public final T object;
}

class Matrix {
private final Map<Integer, Map<interger, Tupple>> data = new...;

void add(int x, int y, Object object) {
data.get(x).put(new Tupple(x,y,object);
}
}


//etc

为简洁起见省略空检查等

关于java - Java中的稀疏矩阵/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/390181/

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