看板 java 關於我們 聯絡資訊
有一個 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
adrianshum:先告訴我為什麼要用hashtable 做這事? 04/05 18:04
yangbernard:單純想練習,未來可能在其他地方會用的到 04/05 21:01
yangbernard:HashMap在未來我資料量大時,找東西會比較快一些 04/05 21:03
PsMonkey:資料量大... 那也要你 VM 撐得住 04/05 22:14
adrianshum:map 其實就是 key 與 value 的對映。你想想你的情況 04/05 23:32
adrianshum:key 應該是什麼 04/05 23:32
yangbernard:恩我想過key就用0~15,value存放每個node 04/06 00:41
adrianshum:要 OO 就用比較 OO 的方法想。弄一個 "座標"的 class吧 04/06 01:12
yangbernard:class index { int x; int y;} 然後把其物件當作key? 04/06 01:41
adrianshum:方向可行,下一步你就要學怎麼寫hashcode() & equals() 04/06 23:41
adrianshum:不過建議你學一下 Java 的命名規則 04/06 23:44