黑马程序员 集合里的对象所属类要按需求重写equals方法
来源:互联网 发布:以太网络延长器 编辑:程序博客网 时间:2024/06/07 10:41
---------------------- android培训、java培训、期待与您交流! ----------------------
我们知道Object类里有一个比较方法equals,比的是两个对象是不是同一对象,返回布尔数据:
obj1.equals(obj2);
集合有一个方法contains,用于判断这个集合中是否含有某个对象,返回布尔数据:
list.contains(obj);
判断的过程是依次查找集合里的每一个元素,拿每个元素和obj进行equals判断。
除了封装数据类型的类(String,Integer等)equals比较数据值,我们自定义的类(如Person)调用底层equals是比较对象的地址。而有时候我们想通过Person中的某些属性来确定一个对象的唯一性,比如假设name属性唯一,那么在一个Person对象组成的集合中判断是否contains一个name为“mike”的人时,就不该比较对象地址了,而要自定义equals让他们比较name值。
Person类可以这样写:
class Person{private String name;Person(String name){this.name=name;}public boolean equals(Object b){if(!(b instanceof Person))return false;Person p2=(Person)b;//b处于多态情况,要强制转成Personreturn this.name==p2.name;}public String getName(){return name;}}
另外补充一下,ArrayList集合和LinkedList集合的remove(Object obj)和contains类似,也依赖equals,因为他要先找到和参数obj相同的对象,再移除他。
-------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
- 黑马程序员 集合里的对象所属类要按需求重写equals方法
- [黑马程序员]集合_HashSet的equals方法
- [黑马程序员]集合_ArrayList练习时为何要重写equals方法
- 黑马程序员 TreeSet集合里的对象需要自定义compareTo方法
- 黑马程序员-----重写equals方法时,this指的具体.(黑马视频)
- java对象equals方法的重写
- java对象equals方法的重写
- java对象equals方法的重写
- java对象equals方法的重写
- java对象equals方法的重写
- 重写对象的equals(Object)方法,同时重写Hashcode()方法
- 重写Java Object对象的hashCode和equals方法实现集合元素按内容判重
- 黑马程序员 equals() 方法
- [黑马程序员]集合_ArrayList的contains方法用的是equals
- equals()方法的重写
- equals方法的重写
- equals()方法的重写
- equals方法的重写
- 黑马程序员 toString()方法
- 黑马程序员 Integer常用功能
- oracle自动共享内存管理(ASMM)
- 黑马程序员 Integer对象判断
- 黑马程序员 集合List接口的特点
- 黑马程序员 集合里的对象所属类要按需求重写equals方法
- 黑马程序员 TreeSet集合里的对象需要自定义compareTo方法
- 黑马程序员 jdk1.5的新特性
- Java 50道经典入门题,坚持每天复习一道!
- 如何扩展Oracle表空间
- 用exec sp_executesql @sql,N'@b int output',@b output 取出查询到@sql的数
- Android的状态栏通知(Notification)
- 微软老将Philip Su的离职信:回首12年职场生涯
- 一名大学毕业生的反思