Java矩阵数据结构?

8

我应该使用哪种最佳数据结构来存储包含短变量但大部分元素为空的矩阵?

我可以简单地使用n乘以b的数组来表示矩阵,但问题是我不想浪费内存,因为矩阵中只有很少的元素。

我考虑使用链表或哈希表,但不确定哪种数据结构更好,也不知道如何实现它。


这可能有助于在Java中处理稀疏矩阵。如果你要自己编写代码,选择哪种数据结构取决于你将进行哪些操作。 https://dev59.com/J3RC5IYBdhLWcg3wKtz2 - jon_darkstar
3个回答

5
我会实现一个稀疏矩阵。使用一个HashMap,将行索引作为键,然后使用HashMapTreeMap存储实际元素(列索引作为键)。如果要存储基本类型,建议查看Trove Java集合框架。它经过优化,适用于基本类型。建议仍然使用它,因为所有键都可以是基本类型。

1

Google Guava库中还有多个表格实现


0

当矩阵是稀疏的时候,最好使用LinkedList。在空间方面,LinkedList比其他选项更好(前提是矩阵是稀疏的)。

但请注意,LinkedList的访问时间为O(n)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接