重写equlas,hashcode . 和比较类大小
来源:互联网 发布:js li默认选中样式 编辑:程序博客网 时间:2024/05/22 13:27
package com.andlinks.yourturn.entity;/** * Created by cly on 2017/8/14. */public class T implements Comparable { private Integer id; private String name; public T(){} public T(Integer id,String name){ this.id=id; this.name=name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public int hashCode() { int hashCode=hashCode(); hashCode=hashCode+ (getId()!=null?getId():12); return hashCode; } @Override public boolean equals(Object obj) { if(this==obj)return true; //检测this与obj是否引用同一个对象 if(obj==null)return false;//检测obj是否为null,如果为null,返回false。这项检测是很有必要的。 T t=(T)obj; if(this.getId()==t.getId()&&this.getName()==t.getName()){ return true; } return false; } @Override public String toString() { return super.toString(); } public static void main(String[] args){ T t=new T(); t.name="alan"; t.id=1; T b=new T(2,"alan"); if(t.equals(b)){ System.out.print("这是相等的"); }else{ System.out.print("这是不相等的"); } System.out.println("\n"+t.getClass().getName()); System.out.print(t.compareTo(b)); } @Override public int compareTo(Object o) { T t=(T) o; int x=this.getId(); int y=t.getId(); if(x>y){ return 1; }else if(x<y){ return -1; }else{ return 0; } }}
重写equlas再重写hashcode,是为了提高效率。如果hashcode不相同,就没必要比较equlas了。
比较两个类是否相同就实现Comparable接口就行了啊。然后用自己的逻辑来,我这儿id。
阅读全文
0 0
- 重写equlas,hashcode . 和比较类大小
- 【Stackoverflow好问题】重写(Override)equlas和hashCode方法时应考虑的问题
- hashcode和equlas、==的一些区别
- 对象之间比较 重写hashCode和equals方法
- 重写equals()和hashCode()方法,用于比较对象的内容
- 黑马程序员一在hashSet集合中比较对象需要覆盖的两个方法hashCode(),equlas()
- String类重写equals()和hashCode()方法
- java类重写equals和hashCode方法
- 重写equals()和hashCode()
- 重写equals()和hashCode()
- 重写equals 和 hashCode
- 重写equals 和HashCode
- 重写equals 和 hashcode
- hashCode和equals重写
- 重写equals和hashcode
- hashCode()和equals()重写
- 重写equals和hashCode
- 重写equals 和 hashCode
- java IO笔记(CharArrayReader/CharArrayWriter)
- 五种经典排序算法的实现(冒泡、归并、快排、堆排序、希尔)
- BZOJ 4059: [Cerc2012]Non-boring sequences 启发式合并
- two sum
- VUE axios 实现自定义下载功能
- 重写equlas,hashcode . 和比较类大小
- HDU-2795 Billboard(线段树)
- ASP.NET权限管理(二)
- studio快捷键(后面会在遇到的时候持续更新)
- Hello CSDN!
- linux shell 管道命令(pipe)使用及与shell重定向区别
- 设计模式
- 关于spring 启动类公共配置
- python datetime的加减操作