由布隆过滤器和布谷鸟过滤器引发得感想

原创
03/10 11:53
阅读数 128
public static void main(String[] args) {
        int total = 100000000;
        System.out.println("当前最大可用内存多少M : "+Runtime.getRuntime().maxMemory()/1024/1024);
        System.out.println("需要使用内存M : "+2139788203/1024/1024);
        //插入数据
        byte[] arry1 = new byte[2139788200];
        byte[] arry2 = new byte[773979474];
        for (int i = 0; i < total; i++) {
            String str = "" + i;
            int h1 = str.hashCode();
            arry1[Math.abs(h1)] = 1;
        }

        int size = 0;
        for (int j = total; j < total + 1000000; j++) {
            String str2 = "" + j;
            int h2 = str2.hashCode();
            if (arry1[Math.abs(h2)] == 1 && arry2[Math.abs(h2)] == 1) {
                System.out.println("存在hash冲突了:" + j);
                size++;
            } else if(arry1[Math.abs(h2)] == 1 && arry2[Math.abs(h2)] != 1) {
                arry2[Math.abs(h2)] = 1;
            }else{
                arry1[Math.abs(h2)] = 1;
            }
        }
        System.out.println("总共hash冲突了-->" + size + "次");

    }

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部