前言
重写equals和hashCode方法,可加深对hash算法的理解
为什么重写
重写equals方法为了判断对象是否在逻辑上为同一个对象
重写hashCode方法是为了提高hash效率, 并且和equals...保持一致
什么场景需要重写
场景: 用户User对象去重
比如有对象User, 其中包含用户id和用户名称, 需要对大量用户进行去重操作, 这时就需要重写User对象的hashCode和equals方法...如何重写
代码如下
import java.util.Objects;
/**
* 重写User对象的equals和hashCode方法
**/
public class User {
private...i 可以使用位运算, 进行高效计算, 可以写成 i << 5
31 * i 可以被优化成 (i << 5) - i, 从而进行高效运算
2.idea 自动生成equals和hashCode重写方法...使用IDEA, 在类中按 Alt + Insert 可以自动实现equals() 和 hashCode() 方法的重写, 并可以选择重写的代码的实现方式, 包括原生、commons-lang、guava