首先做的是比较引用,引用的如果是同一个对象,直接返回true。
做完return就结束了。
如果引用不是同一个地址,就往下走,判断是否是String的一个实例。同样,不是的话直接返回。
是的话,拿字符串的长度做循环的控制变量,做循环。此处的value在源代码里面来看,应该就是String的混:字符数组。
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
相关文章
- 03-03filter与compress
- 03-03在VS里面使用QT,实现:信号与槽
- 03-03Segments - POJ 3304 (判断直线与线段是否相交)
- 03-03引用与借用
- 03-03DNS与获取
- 03-03多表结构的创建与分析
- 03-03【RT-Thread作品秀】基于ART-PI的数字图像处理与识别
- 03-03基于单片机的电子钟的设计与仿真
- 03-03LCD触摸屏行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 03-03第四节 二维条码与磁卡、IC卡、光卡之比较