/** *key的类,你爱把什么做key就把它添加到这个类里去 */ public class KEY{ private long secNum; private long trdNum; equals() hashCode() setters method getters method } /** *value的类,你爱加几个时间加几个时间 */ public class VALUE{ private long firstNum; private java.util.Date nowTime; setters method
private long secNum;
private long trdNum; setters...
getters...
}把这个作为value就行
private long secNum;
private long trdNum; 重写equals方法;
重写hashCode方法
setters...
getters...
}
然后就可以作为key了
如果value中存储包含多个自定义类型的值 也就是说value中我要存储整形,也要存储系统的当前时间 还有我自定义的类型 该怎么做 ?
其它两个用字符串
重写equals的时候注意事项:
1)自反性 a.equals(a)为true
2)对象性a.equals(b)和b.equals(a)返回相同的结果
3)传递性a.equals(b)为true,b.equals(c)为true,那么a.equals(c)也为true
4)无论何时a.equas(null)返回false
5)一致性 对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。 重写hashCode()注意事项
1)一致性 一次虚拟机执行过程中同一对象应该始终返回同一hashCode()值
2)如果equals()返回true,hashCode()返回值必须相同
3)如果hashCode()返回值相同,equals不一定要返回true至于为什么,建议baidu ,hash表原理 这是论坛老话题 了
/**
*key的类,你爱把什么做key就把它添加到这个类里去
*/
public class KEY{
private long secNum;
private long trdNum;
equals()
hashCode()
setters method
getters method
}
/**
*value的类,你爱加几个时间加几个时间
*/
public class VALUE{ private long firstNum; private java.util.Date nowTime; setters method
getters method}