当已知Array的索引时,使用Arrays或HashMaps是否(性能方面)更好?请记住,示例中的'objects array/map'只是一个示例,在我的实际项目中它由另一个类生成,因此我无法使用单个变量.
ArrayExample:
SomeObject[] objects = new SomeObject[2];
objects[0] = new SomeObject("Obj1");
objects[1] = new SomeObject("Obj2");
void doSomethingToObject(String Identifier){
SomeObject object;
if(Identifier.equals("Obj1")){
object=objects[0];
}else if(){
object=objects[1];
}
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
HashMapExample:
HashMap objects = HashMap();
objects.put("Obj1",new SomeObject());
objects.put("Obj2",new SomeObject());
void doSomethingToObject(String Identifier){
SomeObject object = (SomeObject) objects.get(Identifier);
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
HashMap看起来要好得多,但我真的需要这方面的表现才能优先考虑.
编辑:井阵,那么,建议仍然欢迎
编辑:我忘了提一下,Array/HashMap的大小总是一样的(6)
编辑:似乎HashMaps更快的阵列:128毫秒哈希:103毫秒
当使用较少的周期时,HashMaps的速度甚至快了两倍
测试代码:
import java.util.HashMap;
import java.util.Random;
public class Optimizationsest {
private static Random r = new Random();
private static HashMap<String,SomeObject> hm = new …Run Code Online (Sandbox Code Playgroud)