Fitur khusus dari HashMap adalah bahwa tidak seperti, katakanlah, pohon seimbang, perilakunya adalah probabilistik. Dalam kasus-kasus ini, biasanya sangat membantu untuk membicarakan kompleksitas dalam hal kemungkinan suatu peristiwa terburuk terjadi. Untuk peta hash, itu tentu saja adalah kasus tabrakan sehubungan dengan seberapa penuh peta itu terjadi. Tabrakan cukup mudah diperkirakan.
p collision = n / kapasitas
Jadi peta hash dengan jumlah elemen yang kecil kemungkinan besar akan mengalami setidaknya satu tabrakan. Notasi O besar memungkinkan kita melakukan sesuatu yang lebih menarik. Perhatikan bahwa untuk sembarang, konstanta tetap k.
O (n) = O (k * n)
Kita dapat menggunakan fitur ini untuk meningkatkan kinerja peta hash. Kami malah bisa memikirkan kemungkinan paling banyak 2 tabrakan.
p collision x 2 = (n / kapasitas) 2
Ini jauh lebih rendah. Karena biaya penanganan satu tabrakan tambahan tidak relevan dengan kinerja Big O, kami telah menemukan cara untuk meningkatkan kinerja tanpa benar-benar mengubah algoritma! Kita dapat melakukan ini secara umum
p collision xk = (n / kapasitas) k
Dan sekarang kita dapat mengabaikan sejumlah tabrakan yang sewenang-wenang dan berakhir dengan kemungkinan kecil semakin banyak tabrakan daripada yang kita perhitungkan. Anda bisa mendapatkan probabilitas ke tingkat kecil sewenang-wenang dengan memilih k yang benar, semua tanpa mengubah implementasi algoritma yang sebenarnya.
Kita membicarakan hal ini dengan mengatakan bahwa peta hash memiliki akses O (1) dengan probabilitas tinggi