我已經獲得了我嘗試使用的相當大比例的二維數據,每個數據都有一個(x, y)
座標,然後找到一組數據在那個座標上。用於Java中的HashMap的二維可迭代鍵
我現在正在做的只是使用一個HashMap
來循環,通過檢查座標的方法知道什麼時候進入下一個'line'(所以如果數據是[0-10]爲x
然後它測試11(和倍數)計算在哪裏顯示一條新線)。這相當麻煩,我希望有一個更簡單的解決方案,但我還沒有能夠找到一個適合Google或SO的。
我想要做的東西以下僞碼: 的HashMap thisMap =(鍵= IntArray [] [],值= IntArray []) 我在哪裏可以設置一個特定的2-d int數組作爲整個事物的關鍵,然後通過一個循環來分配值(並且容易獲得值),這是一種可迭代的方式。我能想到的最接近的東西是PHP
如何處理多維數組,以及foreach()
,您可以在其中嵌套foreach()
循環,但我不確定這在Java中如何工作。
目標是最終能夠寫出兩個方法,一個將沿着(第一位)迭代,然後進入下一行;另一個將它視爲「幀」並遍歷Y-axis
。我不想讓任何人爲我寫這些,甚至是HashMap代碼,但我希望能夠指出正確的方向,如何做到這一點(如果可能的話),只需要Java SE中提供的標準庫而不是壓倒一切。如果沒有,那麼希望能夠指導如何安全地重載。
注意
這裏的另一個問題是,這組數據是相當大的,和我最初試圖做的是我自己寫的Tuple class
,但我第一次使用它,我跑出來的堆內存,這就是爲什麼我試圖堅持一個單一的2-d基本詮釋數組爲此。
編輯
我發現這些: Java usage of HashMap or Map with multidimensional arrays
Java HashMap associative multi dimensional array can not create or add elements
How to implement a Map with multiple keys?
但他們似乎沒有要試圖實現同樣的事情。
EDIT 2
另一個複雜的是,在Y-axis
鍵是不連續的,雖然他們是有序的從低到高。