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

2021-03-12 11:23:04 浏览数 (2)

代码语言:javascript复制
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 人点赞