1
我读过JVM实例中的哈希码返回相同的值。但在另一个JVM实例中,可能不会返回相同的值。 我尝试了以下程序:不同机器中字符串的哈希码返回相同的值
public class demo {
public static void main(String[] args) {
String s = new String("Hello");
System.out.println(s.hashCode());
}
}
这个程序返回的次数量很多我重新运行它在我的机器上相同的值。另外,我尝试在其他机器上运行相同的程序,并且每次都获得相同的值。这只是巧合吗?
我有一个基于字符串值的场景,我将确定下一个业务逻辑。所以目前我在做
switch(s.hashcode()%4){
case 0:....
case 1:....
}
这个工作应该好吗?
哈希码是从您的字符串派生而来的,所以相同的字符串将具有相同的哈希值。这不是巧合。 –
如果java有可能修改版本之间String的hashCode实现的实现,那么可以让两个java实例返回不同的哈希码(如果它们是不同的版本)。我认为他们认为价值不能保证是一样的,并不是说它们保证是不同的。 – hatchet