java equals函数用法详解

2016-02-19 11:36 8 1 收藏

下面是个简单易学的java equals函数用法详解教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - 编程语言 】

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. 小知识,大麻烦。

来源:https://www.tulaoshi.com/n/20160219/1597982.html

延伸阅读
代码如下: #include stdio.h #include dos.h int main() {     /*getdate()函数的用法*/     struct date d;     getdate(&d); //获取DOS日期     printf("the current year is:%d\n",d.da_year);//cprintf和printf用法是不同的     printf("the current d...
标签: 电脑入门
今天接着给大家来关于Excel中sumif函数用法的操作技巧,那么就有人问了,学会了Excel中sumif函数用法有什么作用呢,不要急,下面就请听图老师小编一一给大家进行详细的讲解: 一、SUMIF函数介绍 SUMIF函数根据指定条件对若干单元格求和,该条件可以是数值、文本或表达式,可以应用在人事、工资和成绩统计中。 二、SUMIF函数用法 sumif函数...
标签: 电脑入门
一、ISNUMBER函数介绍 函数功能:检测参数是否为数值,返回ture或false。 函数语法:ISNUMBER(value)。 参数:如果value为数值时函数返回ture(真),否则返回false(假)。 二、ISNUMBER函数用法 实例一:无错误除法公式 如果工作表为C1设计了公式=A1/B1,一旦B1单元格没有输入除数,就会在C1中显示错误信息#DIV/0!。 这不仅看起来很不美观...
一、EL简介 1.语法结构 ${expression} 2.[]与.运算符 EL 提供.和[]两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。例如: ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如: ${sessionScope.user[data]}中da...
在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则: 1. 不要阻塞UI线程 2. 确保只在UI线程中访问Android UI工具包 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户...

经验教程

48

收藏

14
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部