花式Equals

简介: 花式Equals

人们很少做他们相信是对的事,他们做比较方便的事,然后后悔。——鲍勃.迪伦

相信大伙在开发中经常用equals去比较两个对象是否相等,这里分享一下一些别的写法

注意翻转equals:例如我们之前是这样写ruben.equals("ruben"),一定要改成"ruben".equals(ruben)

养成好习惯,利人利己

第一种写法,最常见的这种

String ruben = "ruben";
String rabbit = "ruben";
String achao = "achao";
// 常用的Object.equals
System.out.println(ruben.equals(rabbit));

第二种写法,避免空指针

// 避免空指针的java.util.Objects.equals
System.out.println(Objects.equals(ruben, rabbit));

比较数组的equals

// 比较数组的Objects.deepEquals
int[] rainbowNumber = new int[]{1, 2, 3, 4, 5, 6, 7};
int[] weekNumber = new int[]{1, 2, 3, 4, 5, 6, 7};
int[] misdaNumber = new int[]{4, 4, 4, 4};
System.out.println(Objects.deepEquals(rainbowNumber, weekNumber));
System.out.println(Objects.deepEquals(rainbowNumber, misdaNumber));

Junitequals

// Junit的org.junit.Assert.assertEquals(java.lang.Object, java.lang.Object),用于测试,如果equals结果为false则抛出Error
Assert.assertEquals(rabbit, ruben);

花式写法

// java.util.function.Predicate花式写法
System.out.println(Predicate.isEqual(ruben).test(achao));
相关文章
|
11月前
|
JavaScript Dubbo Java
还用 if(obj!=null) 做非空判断?带你快速上手 Optional 实战性理解
1.前言 2.认识Optional并使用 3.实战场景再现 4.Optional使用注意事项 5.jdk1.9对Optional优化
|
存储
两个对象的 hashCode()相同,则值一定相同吗?面试篇(第三天)
两个对象的 hashCode()相同,则值一定相同吗?本文带大家回答这个问题。
590 1
两个对象的 hashCode()相同,则值一定相同吗?面试篇(第三天)
|
28天前
|
存储 Java
|
3月前
|
Java
京东一面:为什么不建议用 equals 判断对象相等?
京东一面:为什么不建议用 equals 判断对象相等?
21 0
|
9月前
|
存储 算法 Java
史上最全的Java容器集合之equals 和 hashCode
史上最全的Java容器集合之equals 和 hashCode
50 0
|
算法 Java 索引
equals方法和hashCode方法之间的那些事(1.1)
equals方法和hashCode方法之间的那些事(1.1)
|
存储 Java 索引
《转载》hashCode() 和 equals() 相关问题解答
《转载》hashCode() 和 equals() 相关问题解答
|
前端开发 Java 程序员
工作 3 年不懂 isEmpty 和 isBlank 的区别,被00后上了一课
工作 3 年不懂 isEmpty 和 isBlank 的区别,被00后上了一课
127 0
工作 3 年不懂 isEmpty 和 isBlank 的区别,被00后上了一课
|
存储 缓存 Java
深入理解= = 、equals()与hashcode()的关系
理解= = 、equals()与hashcode()的关系
100 0
深入理解= = 、equals()与hashcode()的关系