SORU
12 EKİM 2010, Salı


Boolean.()hashCode

Bu hashCode() sınıf Boolean yöntemi şöyle uygulanır:

public int hashCode() {
    return value ? 1231 : 1237;
}

Neden 1231 ve 1237 kullanır mı? Neden başka bir şey değil?

CEVAP
12 EKİM 2010, Salı


1231 1237 ve sadece iki (yeterince büyük)rasgele asal sayılar. Diğer iki büyük asal sayılar iyi olur.

Neden bu asal sayılar?doğruveyanlışkovaya git 1000 % N 2000 % N N kova sayısı olduğu) olabilir.

Şimdi dikkat edin

  • 2000 % 8 5 ** aynı kova
  • 2000 % 10 7 ** aynı kova
  • 2000 % 20 9 ** aynı kova
  • ....

diğer bir deyişle, ona neden olacaktırbirçok çarpışmalar.

Bu 1000 çarpanlara ayrılması nedeniyle (23, 53ve 2000 çarpanlara ayrılması (24, 53birçok ortak noktaları var. Böylece asal sayılar kova boyutu ile herhangi bir ortak faktörler Olası oldukları için seçilmiştir.

Nedenbüyükasal. 2 ve 3 olmaz mı?

Çarpışmalar önemi var? Boolean değerleri sadece iki farklı değerler zaten var?

İlgili sorular:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Floortile83

    Floortile83

    16 Ocak 2010
  • NYLON Video

    NYLON Video

    11 Aralık 2006
  • UlyssesForever's channel

    UlyssesForev

    28 ŞUBAT 2012