双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

java 基础知识,各位大侠看看有无问题

difficult difficult 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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新的实例(相对效率高)得到对应的值。

这种方式有无问题?不用考虑多线程并发问题
...全文

相关推荐

评论 9
收藏 已收藏
分享
返回顶部
difficult
Java SE 62,621 成员 307,251 内容