2014-11-02 71 views
1

我有一個家庭作業要做,這真的很有趣,我發現我不知道如何實現應該可搜索和相對快速的數據結構。 有一個數據庫,有3個字段 - x,y,z。它們實際上是一些未知函數的值,它表示三維座標。我必須在這組數據中找到平坦的區域。我想知道,在我的計劃中臨時存儲這些座標的最佳方法是什麼?我希望創建一個名爲「Point」的類,並將相應的字段存儲在一個集合類型(HashMap?ArrayList?LinkedList?)中,這可以讓我在文件內實現一些方法,如「搜索具有相同高度的鄰居」。但我相信應該有更快的數據結構,它直接存儲座標而不是將座標打包成一個對象。 但是其他方面......該死的,我在學習OOP :) 在這種情況下保存數據的最佳結構是什麼? 謝謝 Smok。在Java結構中搜索數值

回答

3

座標表示直接存取。如果你想能夠通過索引訪問數據結構的成員,ArrayList是要走的路。

爲什麼不使用HashMash?地圖適用於鍵值對,而您的結構僅包含值。

爲什麼不是LinkedList?它適用於從一個項目到下一個項目的遍歷,但對於直接訪問非常緩慢。

+0

我明白你的意思了。但我的數據集包含三個值(x,y,z)。有沒有辦法將它們直接存儲到ArrayList中?我一直在創建一個對象並將值存儲在它的字段中,就像上面提到的那樣。該對象已被存儲在數組列表中。不知道如何實現直接訪問。你能向我解釋一下嗎? – Smok 2014-11-02 09:12:29

+0

閱讀ArrayList JavaDocs。這應該給你所有你需要的信息。一定要檢查你正在運行的Java版本。 – lea 2014-11-02 13:33:44

1

我認爲neo4J可能是答案。請谷歌爲它。

+0

這可能很好,但我忘了提及 - 不允許外部庫:| – Smok 2014-11-02 09:03:11

+0

這是側面推進*偏見的意見領土*,但neo4j本質上是GPL軟件使它非常不健康,無論如何用於任何嚴重的事情(除非你想成爲下一個紅帽)。他們似乎有非常好的市場營銷,但我認爲這個軟件對於它的目的也是很好的,這就是爲什麼人們不斷推薦它的原因。 – Esko 2014-11-02 09:22:03