我有座標的大名單(此表):優化建議(HashMap的)
if(x == 1055 && y == 63 && z == 1117)
return blackwood;
if(x == 1053 && y == 63 && z == 1117)
return blackwood;
if(x == 1049 && y == 64 && z == 1113)
return blackwood;
if(x == 1054 && y == 63 && z == 1112)
return blackwood;
if(x == 1058 && y == 63 && z == 1112)
return blackwood;
if(x == 1062 && y == 64 && z == 1117)
return blackwood;
if(x == 1050 && y == 64 && z == 1117)
return blackwood;
if(x == 1062 && y == 64 && z == 1118)
return glass;
if(x == 1050 && y == 64 && z == 1118)
return andesite;
(比這更長)
但是,當我調用執行這些指令的方法,我有一個滯後(不是很長,但足以在遊戲中留下凍結印象)。
所以,我的問題是,我怎麼能優化呢?
我在想在HashMap
和使用HashMap.get(key)
放養這些,但是,確實HashMap.get(key)
迭代列表中找到它呢?
號包含HashMap返回* *基本恆定的時間AFAIK。這就是人們使用它們的原因。注意,雖然要將座標置於HashMap中,您需要將數字分組到某個向量或其他東西中,並且反覆散列容器也可能會慢一些;儘管可能比你現在的t方法更快。 – Carcigenicate
'HashMap.get()'是恆定時間(加上衝突解決方案 - 取決於列表大小與列表中項目之間的比例) – Achilles
做你自己的研究什麼是哈希表。下面是開始的一些事情:[哈希表如何工作](https:// stackoverflow。COM /問題/ 730620 /如何-做的那樣 - 一個哈希表工作) –