12
Mengapa kode hash Java () di String menggunakan 31 sebagai pengganda?
Per dokumentasi Java, kode hash untuk Stringobjek dihitung sebagai: s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] menggunakan intaritmatika, di mana s[i]adalah saya th karakter string, nadalah panjang string, dan ^menunjukkan eksponensial. Mengapa 31 digunakan sebagai pengganda? Saya mengerti bahwa pengganda harus merupakan bilangan prima yang relatif besar. Jadi mengapa tidak …