源代码
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
} //以上代码用于判断两个对象的地址值,如果相等则直接返回对象相等
if (anObject instanceof String)
{ //判断对象是否为String类型如果是则进行运算,如果不是直接返回false
String anotherString = (String)anObject;//将anObject转换成String类型
//先普及知识,String类型储存在底层中是直接转换为一个字符数组
如 "hello"底层的储存状况
char value[] ={'h','e','l','l','o'};
int n = count; //定义字符串的索引为cont
if (n == anotherString.count) { //判断两对象的数组长度是否相等,不相等则直接返回false(判断两对象的字数)
char v1[] = value; //将两对象转换为char类型数组
char v2[] = anotherString.value;
int i = offset; //定义索引变量
int j = anotherString.offset;
while (n-- != 0) { //对数组进行遍历
if (v1[i++] != v2[j++]) //如果对应元素有一个不相等则返回folse,若全部相等则true
return false;
}
return true;
}
}
return false;
}
|
|