一、hashCode()的作用
hashCode()是用来计算哈希值的,在对数据进行存储的时候,假如有成千上万个数据,每当存入一个数据,就需要比较多次,这样效率就很低,采用哈希值算法得到哈希值后,根据哈希值划分为不同的区域,这样就能大大减少比较次数,提高效率。如图所示:
二、ArrayList_HashSet的比较及Hashcode分析
在自定义类中类型添加到HashSet中通常要要重写hashCode方法和equlas方法,依此来判断元素是否重复。在进行判断元素是否相同时,先调用hashCode方法,如果哈希值一样,再调用equals方法继续比较判断。如果哈希值不同,则不再调用equals方法进行判断。
注意:哈希值相同,两个对象不一定相等,两个对象相等,这两个对象的哈希值一定相等。
内存泄露:对象不需要再使用了,却没有引用指向它,未进行回收。
见代码:
public class ReflectPoint
{
public int x;
public int y;
public ReflectPoint(int x, int y)
{
super();
this.x = x;
this.y = y;
}
public String toString()
{
return this.x+"