[問題] 請問有辦法使用HashTable存放這樣的資料?

看板java作者 (別了)時間13年前 (2012/04/05 04:42), 編輯推噓1(1010)
留言11則, 3人參與, 最新討論串1/2 (看更多)
有一個 4x4 的圖形,共16個node,各自的座標如下: --------------------------- (0,0)| (0,1)| (0,2)| (0,3)| --------------------------- (1,0)| (1,1)| (1,2)| (1,3)| --------------------------- (2,0)| (2,1)| (2,2)| (2,3)| --------------------------- (3,0)| (3,1)| (3,2)| (3,3)| --------------------------- 其中每個格子,又分別有4個值:上、下、左、右 例如 (1,1).right = 3 ; (0,2).down = 5; 如果用array + class的方式,我是想到可以這樣存放: class status{ int up_score,down_score,left_score,right_score; } public class Maze { public static void main(String[] args) { int i,j; status node[][] = new status[4][4]; for(i=0;i<4;i++){ for(j=0;j<4;j++) { node[i][j] = new status(); node[i][j].up_score=0; node[i][j].down_score=0; node[i][j].left_score=0; node[i][j].right_score=0; } } } } 要存取哪個node的甚麼方向的值,可以很直觀的以node[x][y].(方向)_score來取值 不過如果我今天想用HashTable()的方式,用put(key, value)來實作出一樣的事情 大概要怎麼樣寫比較好呢? 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 116.59.243.116

04/05 18:04, , 1F
先告訴我為什麼要用hashtable 做這事?
04/05 18:04, 1F

04/05 21:01, , 2F
單純想練習,未來可能在其他地方會用的到
04/05 21:01, 2F

04/05 21:03, , 3F
HashMap在未來我資料量大時,找東西會比較快一些
04/05 21:03, 3F

04/05 22:14, , 4F
資料量大... 那也要你 VM 撐得住
04/05 22:14, 4F

04/05 23:32, , 5F
map 其實就是 key 與 value 的對映。你想想你的情況
04/05 23:32, 5F

04/05 23:32, , 6F
key 應該是什麼
04/05 23:32, 6F

04/06 00:41, , 7F
恩我想過key就用0~15,value存放每個node
04/06 00:41, 7F

04/06 01:12, , 8F
要 OO 就用比較 OO 的方法想。弄一個 "座標"的 class吧
04/06 01:12, 8F

04/06 01:41, , 9F
class index { int x; int y;} 然後把其物件當作key?
04/06 01:41, 9F

04/06 23:41, , 10F
方向可行,下一步你就要學怎麼寫hashcode() & equals()
04/06 23:41, 10F

04/06 23:44, , 11F
不過建議你學一下 Java 的命名規則
04/06 23:44, 11F
文章代碼(AID): #1FVB8uHY (java)
文章代碼(AID): #1FVB8uHY (java)