2011-03-24 62 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)的訪問時間。