2013-10-20 69 views
1

每當我開始我的應用程序需要遍歷所有條目中的矩陣,並且對於每個條目構造對象的可變量。選擇一個合適的數據結構

後來,當給定矩陣上,我需要通過新的矩陣迭代,併爲所有非零項,我需要找回前面爲特定條目計算的所有對象,並遍歷它們。

重點是得到檢索並通過迭代的對象。施工時間不那麼重要。

我想某種地圖結構,其中i映射條目的鏈接列表的。這是否合適?或者你能建議其他的東西嗎?

作爲一個方面說明,我在Java中實現這一點,所以如果你知道一個具體的實現來解決這個問題,我會很高興知道!

問候 加斯帕

+0

矩陣有多大?它們相對稀少,還是大部分條目都不爲零? – DPM

回答

2
I was thinking of some kind of map structure, where i map the entry to a linked list. Is 
this suitable? Or can you suggest something other? 

這聽起來像一個偉大的應用程序使用Multimap API是谷歌公共的一部分。你也可以得到它作爲the guava libraries.的一部分

如果你不想添加依賴關係,但是,維護一個Map<Object1, List<Object2>>可能是最乾淨的方式來做到這一點。

+0

我寧可不要在地圖表示使用圖書館這個(除非它是建立在Java),因爲我想從中學習:)由於Object1是一個座標,mabye你可以只列舉entrys並保持整個列表中的東西? – gedemagt

+0

當然,你也可以這樣做。如果Object1是你自己定製的數據結構,只要確保你重寫了'hashCode()'和'equals()'。 – yamafontes

1

對於矩陣,你可以只使用數組,而且很可能使一個類Matrix抽象掉什麼矩陣實際上是由的。要存儲對象,請使用List<WhateverKindOfObjectYouAreConstructing> s的矩陣。然後,您可以快速找到給定條目的列表,然後快速遍歷它。

+0

以這種方式獲取列表的檢索時間是O(1)嗎?或者例如一個hashmap然後會更好? – gedemagt

+0

是的,這將是O(1)。 – tbodt