设为首页 加入收藏

TOP

11.JAVA-Object类之finalize(),clone(),toString()等方法覆写(二)
2019-09-02 23:45:52 】 浏览:23
Tags:11.JAVA-Object 类之 finalize clone toString 方法
ot;
); System.out.println("st1:"+st1.hashCode()); System.out.println("st2:"+st2.hashCode()); String str1 = new String("小明 初1-6班"); String str2 = new String("小明 初1-6班"); System.out.println("str1:"+str1.hashCode()); System.out.println("str2:"+str1.hashCode()); } }

运行打印:

 

如上图可以看到,对于相同内容st1和st2而言,它们的hash值完全不同,如果我们将它们使用到Hashtable之类的哈希表上的话,将会出现 st1和st2内容相同,却存储在表里的位置却不同,

并且比较st1和st2相等时,也会出现false.

因为判断哈希表里两个对象相等时,也会先判断hash值是否相等再判断是否equals().

目的:hash值能够加快判断速度,但是hash值也有可能值相同从而出现冲突,所以如果两个对象相等时,会再次判断一次equals().

6.3 接下来重写修改上面类覆写hashCode()

class Student                   
{       
         String name;
         String clas;
         Student(String name,String clas)
         {
                  this.name = name;
                  this.clas = clas;
         }
         public int hashCode()              //覆写hashCode()
         {
                  return name.hashCode()*2+clas.hashCode();
         }
}

运行打印:

 

 

下章学习:12.JAVA-基本数据类型的包装类操作

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇java数据结构和算法06(红黑树) 下一篇高并发——缓存

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目