多大数量级会出现哈希碰撞

简介: 写作目的今天在网上看到一个有意思的问题是多大的数据量会出现哈希碰撞?我当时的想法是2的32次方,因此hascode是init类型的,哈哈。还是可以写个demo实验一下的。真实答案是10W5K左右的量级会出现哈希碰撞

实验


实验代码


package HashCcollision;
import java.util.HashSet;
import java.util.Set;
/**
 * @author chaird
 * @create 2022-07-31 22:08
 */
public class App {![请添加图片描述](https://ucc.alicdn.com/images/user-upload-01/46fe066444bd429b8762056191dade0c.png)
  public static void main(String[] args) {
    Set<Integer> set = new HashSet<>();
    int hashcode = 0;
    // 10w
    int size = 11 * 10000;
    System.out.println("init :" + size);
    for (int i = 0; i < size; i++) {
      hashcode = new Object().hashCode();
      if (set.contains(hashcode)) {
        System.out.println("第" + i + "次出现了 哈希冲突");
      } else {
        set.add(hashcode);
      }
    }
      System.out.println("finish :" + set.size());
  }
}


实验结果


如下图所示, 当数量量达到10W~11W的时候会出现哈希碰撞


6.png


结论


10W5K左右的量级会出现哈希碰撞

目录
相关文章
|
存储 算法 Linux
哈希的应用:海量数据处理
哈希的应用:海量数据处理
79 0
|
2月前
|
算法
HyperLogLog的缺点有哪些呢
【10月更文挑战第19天】HyperLogLog的缺点有哪些呢
19 1
|
算法 测试技术 C++
C++算法:让数组不相等的最小总代价
C++算法:让数组不相等的最小总代价
|
存储 关系型数据库 MySQL
Innodb引擎中B+树一般有几层?能容纳多少数据量?
Innodb引擎中B+树一般有几层?能容纳多少数据量?
1203 0
Innodb引擎中B+树一般有几层?能容纳多少数据量?
|
存储 算法 索引
链表竟然比数组慢了1000多倍?(动图+性能评测)上
链表竟然比数组慢了1000多倍?(动图+性能评测)
296 0
链表竟然比数组慢了1000多倍?(动图+性能评测)上
|
Oracle Java 关系型数据库
链表竟然比数组慢了1000多倍?(动图+性能评测)下
链表竟然比数组慢了1000多倍?(动图+性能评测)
203 0
链表竟然比数组慢了1000多倍?(动图+性能评测)下
|
存储 数据处理 C++
C++哈希应用-位图/布隆过滤器/海量数据处理(1)
C++哈希应用-位图/布隆过滤器/海量数据处理(1)
|
存储 人工智能 算法
C++哈希应用-位图/布隆过滤器/海量数据处理(2)
C++哈希应用-位图/布隆过滤器/海量数据处理(2)
|
人工智能 缓存 固态存储
英特尔傲腾持久内存延迟比DRAM差多少?
英特尔表示,作为主内存其性能表现与DRAM内存相近,究竟有多相近呢?
1166 0
英特尔傲腾持久内存延迟比DRAM差多少?