看到哪写到哪。针对未来发展,和面试之前的准备。
java 字符串hashcode 哈希码的原理
public int hashCode() {
int var1 = this.hash;
if (var1 == 0 && this.value.length > 0) {
char[] var2 = this.value;
for(int var3 = 0; var3 < this.value.length; ++var3) {
var1 = 31 * var1 + var2[var3];
}
this.hash = var1;
}
return var1;
}
下面利用上述方法计算字符串”Lee”的哈希值
‘L’的ASCII码为76,’e’的ASCII码为101
for循环3次
- h=31*0+76=76
- h=31*76+101=2457
- h=31*2457+101=76268
所以字符串”Lee”的哈希码就是76268
scala
var seq = Seq[String]()
seq = seq :+ "Hello"
println(seq)
var set = Set[String]()
set += "haha"
println(set)
List(Hello)
Set(haha)
seq是list
Seq
是列表,适合存有序重复数据,进行快速插入/删除元素等场景
Set
是集合,适合存无序非重复数据,进行快速查找海量元素的等场景