java equals函数用法详解

时间:2022-07-31 06:40:20 

equals函数在基类object中已经定义,源码如下


public boolean equals(Object obj) {
return (this == obj);
}


从源码中可以看出默认的equals()方法与“==”是一致的,都是比较的对象的引用,而非对象值(这里与我们常识中equals()用于对象的比较是相饽的,原因是java中的大多数类都重写了equals()方法,下面已String类举例,String类equals()方法源码如下:)
[java]


/** The value is used for character storage. */
private final char value[];

/** The offset is the first index of the storage that is used. */
private final int offset;

/** The count is the number of characters in the String. */
private final int count;

[java] view plaincopyprint?
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
} //www.software8.co
return false;
}


String类的equals()非常简单,只是将String类转换为字符数组,逐位比较。
综上,使用equals()方法我们应当注意:
1. 如何equals()应用的是自定义对象,你一定要在自定义类中重写系统的equals()方法。
2. 小知识, * 烦。

标签:java,equals函数
0
投稿

猜你喜欢

  • Android绘制圆形百分比加载圈效果

    2023-07-16 17:23:38
  • Java适配器模式_动力节点Java学院整理

    2021-09-06 10:50:53
  • Seata AT模式TM处理流程图文示例详解

    2022-05-03 02:28:39
  • SpringBoot Web详解静态资源规则与定制化处理

    2022-01-23 16:19:57
  • Qt for Android开发实例教程

    2023-06-27 10:00:39
  • 基于opencv实现车道线检测

    2023-03-11 10:07:52
  • springboot+mybatis-plus 两种方式打印sql语句的方法

    2022-12-29 13:41:11
  • Android中Bitmap常见的一些操作:缩放、裁剪、旋转和偏移

    2023-10-06 18:24:32
  • Android APK使用Debug签名重新打包 Eclipse更改默认Debug签名

    2022-03-07 13:27:12
  • Android自定义有限制区域的图例角度自识别涂鸦工具类完结篇

    2022-10-22 23:05:13
  • Swing拆分窗格控件JSplitPane使用详解

    2022-11-14 21:13:48
  • java打印正弦曲线示例

    2022-05-04 00:48:56
  • Android编程实现为ListView创建上下文菜单(ContextMenu)的方法

    2021-12-09 06:26:28
  • Android封装的http请求实用工具类

    2021-09-16 03:03:52
  • Spring Boot集成Spring Cache过程详解

    2023-08-02 19:20:16
  • C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法

    2023-07-15 21:35:09
  • Spring中自动注入的两种方式总结

    2022-10-24 08:54:14
  • 新手入门Jvm-- JVM对象创建与内存分配机制

    2021-11-04 19:28:10
  • C#检查指定对象是否存在于ArrayList集合中的方法

    2023-07-28 00:45:17
  • C#软件注册码的实现代码

    2021-10-14 06:14:38
  • asp之家 软件编程 m.aspxhome.com