2011-03-24 64 views
6

什么是最好的数据结构,我可以用我的矩阵将包含短的变量,但大部分元素都为空..矩阵的Java数据结构?

我可以简单的矩阵使用N乘B排列,但问题是,我不不想浪费内存,因为矩阵中只有少数几个元素..

我打算使用链表或哈希表,但不确定哪一个是最好的数据结构以及如何实现这一点。

+0

这将有助于在Java http://stackoverflow.com/questions/390181/sparse-matrices-arrays-in-java稀疏矩阵如果你打算为了推出自己的产品,我认为数据结构的选择取决于你将要进行什么样的操作 – 2011-03-24 06:23:23

回答

4

我会执行Sparse Matrix。使用行索引作为关键字的HashMap,然后使用HashMapTreeMap作为实际元素(列索引作为关键字)。如果你正在存储原始类型,我会建议看一下Trove Java集合框架。它针对原始类型进行了优化。无论如何,我会建议使用它,因为这些键可能都是原始的。

0

当矩阵稀疏时,最好使用LinkedList。在空间方面LinkedList会比其他选项更好(只要矩阵很稀疏)。

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