您的位置:首页 > 编程语言 > Java开发

java之学习笔记--hashcode获取对象

2014-11-22 00:00 411 查看
摘要: 通过hashcode获取对象

class XObject{
public final static Map<Integer,XObject> map=Collections.synchronizedMap(new HashMap<Integer,XObject>()); ////它是一个Map,并且线程安全
public static XObject getObjectByRawHashCode(Integer hashCode){
return map.get(hashCode);
}

/**hashCode()方法是Object类下面的一个方法,供继承类重写,根据对象内存地址计算哈希值 ,String类重写了hashCode方法,并改为根据字符序列来计算哈希值,identityHashCode()方法是S ystem类中的静态方法,根据对象内存地址来计算哈希值;     **/
XObject(){
map.put(System.identityHashCode(this), this);
}
}
public class MyHashCodeObject extends XObject{
private String name;

public void setName(String s)
{
this.name=s;
}

public String getName()
{
return this.name;
}
public static void main(String[] args){
MyHashCodeObject my=new MyHashCodeObject();
my.setName("abc");
System.out.println("hashcode:"+my.hashCode());
MyHashCodeObject object=(MyHashCodeObject)XObject.getObjectByRawHashCode(my.hashCode()); ////通过hashcode重新得到这个对象
System.out.println(object.getName());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hashcode