java 基础知识,各位大侠看看有无问题
public class Key{
public int x;
public int y;
public Key(){}
public Key(int x,int y){
this.x=x;
this.y=u'
}
public int hasCode(){
....
}
public boolean equals(Object o){
....
}
}
public class MyObject{
public MyObject(int i,int j){...}
}
public class C{
Map map=new HashMap();
Key key=new Key();
public C(){
for(int i=0;i<1000;i++){
for(int j=0;j<1000;j++){
map.put(new Key(i,j),new MyObject(i,j));
}
}
}
public MyObject get(int i,int j){
key.x=i;
key.y=j;
return (MyObject)map.get(key);
//return (MyObject)map.get(new Key(i,j));
}
}
关键是类C中get方法,想通过
key.x=i;
key.y=j;
return (MyObject)map.get(key);
改变key而不用new新的实例(相对效率高)得到对应的值。
这种方式有无问题?不用考虑多线程并发问题