hash取模存放数据-经典的模运算

   //对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);
    }

  

 

posted @ 2022-02-07 16:08  三号小玩家  阅读(448)  评论(0编辑  收藏  举报
Title
三号小玩家的 Mail: 17612457115@163.com, 联系QQ: 1359720840 微信: QQ1359720840