String类中的equals方法总结(转载)
转载:https://blog.csdn.net/qq_25827845/article/details/53868815
1.String源码中equals大致写法:
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;
}
2. 模仿String equals源码
package cn.ywq.test;
class MyString {
char[] value;
public MyString(char[] value) {
this.value=value; //通过构造方法将字符传入
}
public int equalsString(Object obj) {
if(this==obj){
return 0;
}
//若该对象是MyString类型的
if(obj instanceof MyString){
MyString string =(MyString) obj;
int n=this.value.length;
if (n>string.value.length) { //先判断长度的关系
return 1;
}else if(n<string.value.length){
return -1;
}else{ //若长度相等
char v1[] = this.value;
char v2[] = string.value;
int i = 0;
while (n-- != 0) { //按照数组的每一位进行比较
if (v1[i] > v2[i]){
return 1;
}else if(v1[i] < v2[i]){
return -1;
}
i++;
}
return 0; //若while循环正常结束,则说明相等,返回0
}
}
return -100; //若传入的不是MyString类型的对象
}
}
package cn.ywq.test;
public class Test {
public static void main(String[] args) {
char[] value={'a','b','c','d'};
// char[] value2={'a','b','c','d','e'};
// char[] value3={'c','b','c','d'};
char[] value4={'a','b','c',};
MyString myString = new MyString(value);
MyString s=new MyString(value4);
int i = myString.equalsString(s);
System.out.println(i);
}
}
String类中的equals方法总结(转载)的更多相关文章
- String类中的equals()方法:
String类中的equals()方法: public boolean equals(Object anObject) { //如果是同一个对象 if (this == anObject) { ret ...
- String类中的equals()方法
在Java中,每一个对象都有一个地址空间,在这空间保存着这个对象的值. equals 比较的是值,==比较的地址以及值. 01: public class StringExample02: {03: ...
- 重写Object类中的equals方法
Object是所有类的父亲,这个类有很多方法,我们都可以直接调用,但有些方法并不适合,例如下面的student类 public class Student { //姓名.学号.年纪 private S ...
- Java——String类中的compareTo方法总结
String类的定义: java.lang 类 String java.lang.Object java.lang.String 所有已实现的接口:Serializable, C ...
- String类中"=="、equals和普通类中"=="、equals的比较
package cn.method.demo; public class StringDemo2 { public static void main(String[] args) { String s ...
- Object 类中的 equals方法
1 相等与同一 如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等.如果两个引用对象指的是同一个对像,则称这两个变量同一.Object类中定义的equals 函数原型为:public bo ...
- Java String类中的intern()方法
今天在看一本书的时候注意到一个String的intern()方法,平常没用过,只是见过这个方法,也没去仔细看过这个方法.所以今天看了一下.个人觉得给String类中加入这个方法可能是为了提升一点点性能 ...
- Java用代码演示String类中的以下方法的用法
用代码演示String类中的以下方法的用法 (1)boolean isEmpty(): 判断字符串是不是空串,如果是空的就返回true (2)char charAt(int index): 返回索引上 ...
- Java Object类中的equals方法
Object类中的equals方法用于检测一个对象是否等于另外一个对象.在Object类中,这个方法将判断两个对象是否具有相同的引用.如果两个对象具有相同的引用,它们一定是相等的.从这点上看,将其作为 ...
随机推荐
- java学习笔记之IO编程—字节流和字符流
1. 流的基本概念 在java.io包里面File类是唯一一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操 ...
- 轻量级RPC设计与实现第三版
在前两个版本中,每次发起请求一次就新建一个netty的channel连接,如果在高并发情况下就会造成资源的浪费,这时实现异步请求就十分重要,当有多个请求线程时,需要设计一个线程池来进行管理.除此之外, ...
- Java代码中特殊注释
Java代码中特殊注释 TODO: + 说明:标识处有功能代码待编写,待实现的功能在说明中会简略说明. FIXME: + 说明:标识处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说 ...
- BZOJ3926&&lg3346 ZJOI诸神眷顾的幻想乡(广义后缀自动机)
BZOJ3926&&lg3346 ZJOI诸神眷顾的幻想乡(广义后缀自动机) 题面 自己找去 HINT 我们可以把题目拆解成几个部分,首先我们手玩一个结论,从所有的叶子节点出发,遍历整 ...
- 自己的系统重装之后,怎么去重新的装官方的office办公软件,详细教程
1 访问官网地址--微软,并通过自己的微软账号进行登录,转到下面的界面 2 点击上图的菜单栏的offce菜单项,跳转到下图 3 点击 菜单栏的产品 之后选择 查看office的全部的历史 ...
- StaticFileMiddleware 解析
说明:由于部分产品没有静态资源的管理,我突然想到能不能用现有的静态文件中间件的功能调整一下实现多组织件上传文件的隔离呢?那第一步先看懂 StaticFileMiddleware做了什么吧. ...
- 数据库之十一:CASE表达式
1.简单Case表达式: 基本语法: CASE <表达式> WHEN <表达式> THEN <表达式> WHEN <表达式> THEN <表达式& ...
- 自动生成admin(后台)
public --->>>>index.php 入口文件如下: // +---------------------------------------------------- ...
- 翻转引起 cocos studio 引擎与cocos2d 代码相同坐标显示不同
使用setFlippedX后,又改变锚点为1.此时代码中坐标需要相对于cocos studio 中增加它本身的width,因为(0.5,0.5)是相对于自己中点的翻转,不变坐标.而(1,0.5)是相对 ...
- 前端面试必备技巧(二)css盒模型及BFC
CSS盒模型 基本概念:标准模型+IE模型及区别 CSS如何设置这两种模型? JS如何设置获取盒模型对应的宽和高? 实例题(根据盒模型解释边距重叠) BFC边距重叠解决方案 (1)BFC的基本概念:b ...