ค่า hashCode ของ Java String คำนวณเป็น ( String.hashCode () ):
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
มีสถานการณ์ใดบ้าง (เช่นเวอร์ชัน JVM ผู้ขาย ฯลฯ ) ซึ่งนิพจน์ต่อไปนี้จะประเมินว่าเป็นเท็จหรือไม่
boolean expression = "This is a Java string".hashCode() == 586653468
อัปเดต # 1:หากคุณอ้างว่าคำตอบคือ "ใช่มีสถานการณ์ดังกล่าว" โปรดยกตัวอย่างที่เป็นรูปธรรมว่า "นี่คือสตริง Java" .hashCode ()! = 586653468 เมื่อใดพยายามระบุให้เจาะจง / เป็นรูปธรรม เป็นไปได้.
อัปเดต # 2:เราทุกคนรู้ดีว่าการใช้รายละเอียดการใช้งาน hashCode () นั้นไม่ดีโดยทั่วไป อย่างไรก็ตามฉันกำลังพูดถึง String.hashCode () โดยเฉพาะดังนั้นโปรดให้คำตอบเน้นไปที่ String.hashCode () Object.hashCode () ไม่เกี่ยวข้องโดยสิ้นเชิงในบริบทของคำถามนี้