作者yangbernard (别了)
看板java
标题[问题] 请问有办法使用HashTable存放这样的资料?
时间Thu Apr 5 04:42:30 2012
有一个 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
1F:→ adrianshum:先告诉我为什麽要用hashtable 做这事? 04/05 18:04
2F:→ yangbernard:单纯想练习,未来可能在其他地方会用的到 04/05 21:01
3F:→ yangbernard:HashMap在未来我资料量大时,找东西会比较快一些 04/05 21:03
4F:推 PsMonkey:资料量大... 那也要你 VM 撑得住 04/05 22:14
5F:→ adrianshum:map 其实就是 key 与 value 的对映。你想想你的情况 04/05 23:32
6F:→ adrianshum:key 应该是什麽 04/05 23:32
7F:→ yangbernard:恩我想过key就用0~15,value存放每个node 04/06 00:41
8F:→ adrianshum:要 OO 就用比较 OO 的方法想。弄一个 "座标"的 class吧 04/06 01:12
9F:→ yangbernard:class index { int x; int y;} 然後把其物件当作key? 04/06 01:41
10F:→ adrianshum:方向可行,下一步你就要学怎麽写hashcode() & equals() 04/06 23:41
11F:→ adrianshum:不过建议你学一下 Java 的命名规则 04/06 23:44