//对hash值进行取模,将hash值路由到指定的内存队列中,比如内存队列大小8
//用内存队列的数量对hash值取模后,结果一定在0~7之间
//所以任何一个商品的id都会被固定路由到同样的一个内存队列中。
public static void main(String[] args) {
int anInt = (int) (Math.random() * 10);
System.out.println("初始的值:"+anInt);
String key = String.valueOf(anInt);
int h;
int hash= (key==null)?0:(h=key.hashCode())^(h>>>16);
//得到的hash值
System.out.println("得到的hash值:"+hash);
// ListSize 容器的大小
int ListSize=20;
int index = (ListSize - 1) & hash;
//要存放的位置
System.out.println("要存放的位置:"+index);
}
作者:三号小玩家,转载请注明原文链接