`
shadabing
  • 浏览: 24237 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HashCode和equals认识

阅读更多

1.首先弄懂equals()方法设计的初衷:

       我们都知道,String类重写equals()方法,它比较的是两个字符串的内容是否相等,而所有类的祖先类Object类的equals()方法是对两个对象的地址比较,而在我们所设计类中通常比较的是内容,而不是地址,故我们需要重写equals()方法。所以对象内容的比较才是设计equals()的真正目的。

2 equals()方法如何定义

 例如,定义一个student类

 Class student                      

 {                                               .

          int id;                               

          String name;                 

          int age;

 }

  如果我们认为如果两个学生姓名相同即为同一个人,此时我们重写equals()方法,以name属性作为依据,所以如何重写equals()方法常常根据需求而定。

3 hashcode如何理解。

 

 

分享到:
评论

相关推荐

    Java Object类认识

    - 在重写`equals()`时,通常也需重写`hashCode()`,以保持两个方法的一致性,遵循equals和hashCode约定,确保当两个对象相等时,它们的哈希码也应该相等。 总结来说,理解`Object`类及其提供的方法是Java开发的基础...

    set-collections-map

    在这个例子中,`equals()`方法检查姓名和年龄是否相等,而`hashCode()`方法则基于姓名、年龄和身高的哈希码生成。这样可以确保只有当两个学生对象的姓名和年龄完全相同时,它们才被视为相等的元素。 #### 四、...

    JavaSE_Chaper11_Mark.pdf

    此外,我们可能还需要比较两个Student对象是否相等,这要求重写equals()和hashCode()方法。在Java中,如果要比较两个对象的内容是否相同,而不是比较它们的内存地址,我们通常会基于对象的某些属性来重写equals()...

    认识类集、Collection接口

    - `equals(Object o)`:比较两个集合是否相等,即它们包含相同的元素。 - `hashCode()`:返回集合的哈希码,用于实现哈希表(如HashMap)。 Java集合框架还包含了一些直接或间接实现`Collection`接口的类,例如`...

    深入Java集合学习系列:HashMap的实现原理

    在使用HashMap时,需要注意几个关键点:1) 键必须正确实现hashCode()和equals()方法,以确保哈希计算和比较的一致性;2) 避免使用null键和null值,因为HashMap的null键和null值有特殊含义;3) 考虑负载因子和初始...

    JavaOOP_第1章上机练习.zip

    8. 对象的比较:掌握equals()和hashCode()方法的使用,以及自定义比较逻辑。 通过这些基础练习,学习者将能够建立起对Java OOP的基本认识,并逐步提升编程能力。在实践中不断加深理解,有助于为后续更复杂的编程...

    day09【常用API、引用类型小结】_pojie_

    例如,Java的`Object`类的方法如`equals()`、`hashCode()`,以及`toString()`。 3. **引用类型的创建和操作**:讲解如何创建对象、传递对象引用,以及深拷贝和浅拷贝的区别。例如,Java中的`clone()`方法和`System....

    如何面试一个java程序员.pdf,这是一份不错的文件

    - 分析可能存在的设计问题,探讨改进策略,考察他们对技术趋势和最佳实践的认识。 4. **Java基础知识**: - 深入讨论Java集合框架,比如Collections与Collection的区别,HashMap与HashTable的不同,以及各种集合...

    kotlin-docs_kotlinandroid_android_

    4. **数据类**:通过data关键字,可以自动生成equals()、hashCode()和toString()方法,方便比较和显示对象。 5. **区间与集合**:Kotlin提供了丰富的集合类型,如List、Set和Map,以及区间(Range)和序列(Sequence...

    AIC的Java课程1-6章

    第9章 常用类 4课时  理解Object类及其常用方法equals,hashCode和finalize等。  能够使用String,StringBuffer,StringBuilder类创建字符串对象和使用其方法,分辨不同类之间的区别。 ...

    Android知识体系梳理(4)-Java基础篇-Object方法分析,String的深度解析,String Pool分析,与StringBuilder、StringBuffer的对比

    首先,Object类是所有Java类的基类,它定义了一些基础方法,如`equals()`、`hashCode()`、`clone()`和`toString()`。`equals()`方法默认比较的是对象的引用,也就是判断两个对象是否是同一个实例。在自定义类中,...

    java内存泄露总结

    解决办法是在`Person`类中重写`equals`和`hashCode`方法,并考虑所有关键属性的变化。 3. **监听器** 在Java编程中,经常需要添加各种监听器。例如,通过`addXXXListener()`方法为组件添加监听器。然而,如果不...

    kotlin学习视频.txt

    - 数据类:自动实现`equals()`, `hashCode()`, `toString()`等方法。 - 密封类:提供有限数量的子类,通常用于表示一组封闭的状态或选项。 #### 3. Android开发中的Kotlin应用 - 使用Kotlin进行UI布局的创建和管理...

    java-kata-fractions

    3. **等价性与比较**:实现`equals()`和`hashCode()`方法来判断两个分数是否相等,以及`compareTo()`方法进行分数间的比较。这些方法对于存储和查找分数对象至关重要。 4. **测试驱动开发**:使用JUnit或其他测试...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    12.2.2 认识接口的代码组成 340 12.2.3 什么是接口 341 12.2.4 使用接口仅需一步——实现接口 342 12.2.5 接口——让类集多重类型于一身 344 12.2.6 简化recordTransport()方法 347 12.3 再探接口 349 12.3.1 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    12.2.2 认识接口的代码组成 340 12.2.3 什么是接口 341 12.2.4 使用接口仅需一步——实现接口 342 12.2.5 接口——让类集多重类型于一身 344 12.2.6 简化recordTransport()方法 347 12.3 再探接口 349 12.3.1 ...

    java_编程30条规则

    - **重写hashCode方法**:与equals方法配合使用,用于散列表等容器中的对象识别。 - **重写toString方法**:提供更丰富的字符串表示形式。 - **实现Cloneable接口**:支持对象的浅拷贝。 - **实现Serializable接口**...

    JAVA经典教材笔记

    - Object类的方法:toString、hashCode等。 - **包装类** - 包装类的作用:将基本类型包装为对象。 - 常用包装类:Integer、Double等。 - **匿名内部类** - 匿名内部类的定义:没有名称的内部类。 - 匿名内部类...

Global site tag (gtag.js) - Google Analytics