java基础(关于重写hashcode,equals,toString方法)
2020-07-14 06:20
316 查看
按照java开发的既定规范,任何和数据有关的类定义都需要重写三个方法:
1、hashcode
2、equals
3、toString
同时实现这三个方法有一个要求,既是,被定义为相同数据的两个对象,这三个方法表现必须一致:既是
如果a.equals(b)==true的情况下,a.hashcode()==b.hashcode()返回true;a.toString()==b.toString()也要返回true。
理解
object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码。所以当你要想按照你想要的格式去字符串一些对象的时候,就需要重写toString了。比如一个Student对象,直接toString肯定是一个hash码。然而你想得到的比如是:name:,age:。这时就重写toString就是在toString里写:System.out.println(“name:”+student.getName);System.out.println(“age:”+student.getAge)。这样再toString就直接反回你想要的格式。通过查api我们就可以知道HashSet的toString是把s的值格式化成[,,*],就是给s的加个中括号,而且用逗号分开。而HashMap的toString是把m的值格式化成{key1=value1,key2=value2,key3=value3}
相关文章推荐
- 【原创】关于java对象需要重写equals方法,hashcode方法,toString方法 ,compareto()方法的说明
- java基础回顾--4、重写equals及hashcode方法
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)
- 【Java基础之重写equals、hashCode和compareTo方法】什么时候需要重写重写equals方法?为什么重写equals方法,一定要重写HashCode方法?
- 【Java基础】JAVA中重写equals()方法为什么要重写hashcode()方法?
- Java基础——权限修饰符、重写、super、final关键字、Object类、toString方法、equals、多态、转型cast、抽象abstract
- 关于重写equals方法,hashcode方法,toString方法 ,compareto()方法
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解
- 【Core Java Volume1】重写equals,hashCode,toString方法
- Java基础---为什么要重写hashCode和equals方法
- Java基础之重写equals方法的同时为什么要重写hashCode方法
- Java中重写Object类的equals方法和Hashcode方法的注意事项
- 关于重写equals,hashcode以及compareTo方法
- java equals() 和toString()方法重写
- JAVA类中的equals()方法和hashCode()方法的重写
- Java中==与equals的区别(可以试下重写hashcode与equals方法)
- JAVA中重写equals()方法的同时要重写hashcode()方法
- JAVA中重写equals()方法为什么要重写hashcode()方法说明
- JAVA中重写equals()方法为什么要重写hashcode()方法说明
- 关于重写equals,hashcode以及compareTo方法!