Java String类中的 hashCode方法和equals方法
程序员文章站
2022-03-15 20:35:11
...
1. hashCode()方法
2. equals 方法
1.hashCode 方法是Object中的一个方法 ,String 类对其进行了重写,主要是不断的对前一个字符所产生的hash值进行累加。
public int hashCode() {
int h = hash;//String 类中的hash
if(h == 0 && value.length > 0) {// 判断字符串长度是大于0的
char[] val = value;
for(int i=0; i < value.length; i++) {
h = 31 * h + char[i];
}
hash = h;
}
return h;
}
2.equals 方法
equals 方法是Object的一个方法,在String 类中对其进行了重写,具体代码如下。
public boolean equals(Object anObject){
if(this == anObject) {
return true;
}
if(anObject isInstanceOf String) {
String anString = (String)anObject;
int n = value.length;
if(n == anString.value.length) {
char[] strA = value;// 字符串是以char类型的数组存在的
char[] strB = anString.value;
int i = 0;
while(lengthA-- != 0) { // 由于String类中字符串是以char数组来存储的,因此,比较数组中的每一个元素即可
if(strA[i] != strB[i]) {
return false;
}
i++;
}
return true;
}
return false;
}
}
推荐阅读
-
java中timer的schedule和scheduleAtFixedRate方法区别详解
-
浅谈Java中hashCode的正确求值方法
-
java string类的常用方法详细介绍
-
Java 获取当前类名和方法名的实现方法
-
Java8利用stream的distinct()方法对list集合中的对象去重和抽取属性去重
-
Java中构造方法和代码块的执行顺序
-
Objective-C中类和方法的定义以及协议的使用
-
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
-
java.lang.String 类的所有方法
-
javascript中数组(Array)对象和字符串(String)对象的常用方法总结