"=="和equals
来源:互联网 发布:大连淘宝运营 编辑:程序博客网 时间:2024/06/03 15:00
package com.wang.charater.extend.string.model;/** * 注意: * String类是一个final类 不能被继承,equals()是Object的方法 * * */public class Student {private String name; //姓名private int age; //年龄//带参构造方法public Student(String name,int age){this.name = name;this.age = age;}//自己定义比较方法,只有姓名和年龄都相同是一个对象@Overridepublic boolean equals(Object obj){Student stu = (Student) obj;return this.name.equals(stu.name) && this.age == stu.age;}// 或是重写hashCode()和equals()/*@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + age;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Student other = (Student) obj;if (age != other.age)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}*/}
package com.wang.charater.extend.string.model;/** * equals 和 == * ==运用基本类型,通过实际的值相等判定是否相等;运用引用类型时表示地址,是否是一个对象 * equals()和hashCode()是java.lang.Object的方法,可以被重写,自己定义;对于字符串java.lang.String的类来讲 * 它的equals方法用来比较字符串的字符序列是否相等 * 只有重写equals()和hashCode()才是比较内容 * * * */public class EqualTest {public static void main(String[] args) {//比较两个学生是否是同一个人Student stu1 = new Student("光头强1",11);Student stu2 = new Student("光头强1",12);Student stu3 = new Student("光头强1",11);System.out.println(stu1.equals(stu2));System.out.println(stu1.equals(stu3));}}
小结:
1.只是重写hashCode()而不重写equals()则结果:虽然输出的哈希码一样,但不是同一个对象
2.当重写hashCode和equals方法后,这两者都是比较的是否是同一个对象(对象的地址)
3.对于String类比较特殊,该类重写了equals方法,只是比较的内容是否一样
0 0
- equals 和 ==, equals 和 hashcode
- == equals和Arrays.equals
- "=="和"equals()"
- equals和==
- equals和==
- equals和==
- equals 和 ==
- == 和 equals
- "=="和“equals”
- ==和equals()
- ==和equals
- ==和equals()
- ==和equals
- equals和==
- equals和==
- equals和==
- ==和equals
- equals 和==
- 【Unity编程】下载和安装Unity
- toString方法讲解
- 【Unity编程】官方资源介绍
- 在Windows上和Linux上安装xdebug
- maven不能设置为web3.0
- "=="和equals
- 【Unity编程】 Unity界面概览
- 16 3sum closest
- Windows安装TensorFlow
- CentOS 7安装与配置JDK8
- 解决winfrom下TextBox不支持透明背景色
- CRC32 和 zip文件的crc 字段
- 监督学习-支持向量机模板
- [LeetCode] 417. Pacific Atlantic Water Flow 解题报告