欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java equals函数用法详解

程序员文章站 2023-10-23 23:28:25
equals函数在基类object中已经定义,源码如下 复制代码 代码如下: public boolean equals(object obj) { return (thi...
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. 小知识,大麻烦。