คำถามติดแท็ก hashcode

รหัสแฮชเป็นผลมาจากการใช้ฟังก์ชันแฮชกับข้อมูลโดยปกติจะให้ผลลัพธ์เป็นจำนวนเต็ม

20
อัลกอริทึมที่ดีที่สุดสำหรับการเอาชนะ GetHashCode คืออะไร
ใน. NET GetHashCodeวิธีนี้ถูกใช้ในหลาย ๆ ที่ทั่วทั้งไลบรารีคลาสฐาน. NET การใช้อย่างถูกต้องเป็นสิ่งสำคัญโดยเฉพาะอย่างยิ่งในการค้นหารายการอย่างรวดเร็วในคอลเลกชันหรือเมื่อพิจารณาความเท่าเทียมกัน มีอัลกอริทึมมาตรฐานหรือวิธีปฏิบัติที่ดีที่สุดเกี่ยวกับวิธีการใช้GetHashCodeสำหรับคลาสที่กำหนดเองของฉันดังนั้นฉันจึงไม่ลดประสิทธิภาพการทำงานหรือไม่

14
เหตุใดจึงสำคัญที่ต้องแทนที่ GetHashCode เมื่อเมธอด Equals ถูกเขียนทับ
รับคลาสต่อไปนี้ public class Foo { public int FooId { get; set; } public string FooName { get; set; } public override bool Equals(object obj) { Foo fooItem = obj as Foo; if (fooItem == null) { return false; } return fooItem.FooId == this.FooId; } public override int GetHashCode() { // …
1444 c#  overriding  hashcode 


30
จะกำหนดความเท่าเทียมกันสำหรับวัตถุ JavaScript สองตัวได้อย่างไร
ตัวดำเนินการความเสมอภาคที่เข้มงวดจะบอกคุณว่าประเภทของวัตถุสองชนิดเท่ากันหรือไม่ อย่างไรก็ตามมีวิธีที่จะบอกได้หรือไม่ว่าวัตถุทั้งสองนั้นมีค่าเท่ากันเหมือนกับค่ารหัสแฮชใน Java หรือไม่ คำถาม Stack Overflow มีฟังก์ชั่น hashCode ใน JavaScript หรือไม่? คล้ายกับคำถามนี้ แต่ต้องการคำตอบเชิงวิชาการเพิ่มเติม สถานการณ์ดังกล่าวข้างต้นแสดงให้เห็นว่าทำไมมันจำเป็นจะต้องมีหนึ่งและฉันสงสัยว่าถ้ามีวิธีการแก้ปัญหาเทียบเท่า

11
ปัญหาใดที่ควรพิจารณาเมื่อลบล้างเท่ากับและ hashCode ใน Java
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ จะต้องพิจารณาประเด็น / ข้อผิดพลาดใดบ้างเมื่อเอาชนะequalsและhashCode?

29
ทำไมฉันต้องแทนที่เมธอด equals และ hashCode ใน Java
เมื่อเร็ว ๆ นี้ฉันอ่านเอกสารสำหรับนักพัฒนานี้ นี้ เอกสารทั้งหมดเกี่ยวกับการกำหนดhashCode()และequals()มีประสิทธิภาพและถูกต้อง แต่ฉันไม่สามารถคิดออกว่าทำไมเราต้องแทนที่ทั้งสองวิธี ฉันจะตัดสินใจใช้วิธีการเหล่านี้อย่างมีประสิทธิภาพได้อย่างไร
383 java  equals  hashcode 


10
วิธีรับ ID เฉพาะของวัตถุที่แทนที่ hashCode ()
เมื่อคลาสใน Java ไม่ได้แทนที่hashCode ()การพิมพ์อินสแตนซ์ของคลาสนี้จะให้หมายเลขที่ไม่ซ้ำใคร Javadoc of Object พูดเกี่ยวกับhashCode () : เท่าที่เป็นจริงในทางปฏิบัติวิธีการ hashCode ที่กำหนดโดยวัตถุคลาสจะส่งกลับจำนวนเต็มที่แตกต่างกันสำหรับวัตถุที่แตกต่างกัน แต่เมื่อคลาสแทนที่hashCode ()ฉันจะรับหมายเลขที่ไม่ซ้ำได้อย่างไร
231 java  identity  hashcode 

14
Java HashMap จัดการกับวัตถุต่าง ๆ ด้วยรหัสแฮชเดียวกันได้อย่างไร
ตามความเข้าใจของฉันฉันคิดว่า: มันถูกกฎหมายอย่างสมบูรณ์แบบสำหรับวัตถุสองชิ้นที่มีแฮชโค้ดเดียวกัน หากวัตถุสองชนิดเท่ากัน (ใช้เมธอด equals ()) วัตถุเหล่านั้นจะมีแฮชโค้ดเดียวกัน หากวัตถุสองชิ้นไม่เท่ากันวัตถุเหล่านั้นจะไม่มีแฮชโค้ดเดียวกัน ฉันถูกไหม? ตอนนี้ถ้าถูกต้องฉันมีคำถามต่อไปนี้: HashMapภายในใช้ hashcode ของวัตถุ ดังนั้นหากวัตถุสองชิ้นสามารถมีแฮชโค้ดเดียวกันได้ดังนั้นHashMapแทร็กที่ใช้คีย์นั้นจะทำอย่างไร บางคนสามารถอธิบายวิธีการHashMapใช้แฮชโค้ดของวัตถุได้อย่างไร

9
ทำไมต้องใช้หมายเลขเฉพาะใน hashCode
ฉันแค่สงสัยว่าทำไมช่วงเวลาดังกล่าวถูกใช้ในวิธีการเรียนhashCode()? ตัวอย่างเช่นเมื่อใช้ Eclipse เพื่อสร้างhashCode()วิธีการของฉันจะมีจำนวนเฉพาะที่31ใช้เสมอ: public int hashCode() { final int prime = 31; //... } อ้างอิง: นี่เป็นไพรเมอร์ที่ดีใน Hashcode และบทความเกี่ยวกับวิธีการแฮ็กที่ทำงานที่ฉันพบ (C # แต่แนวคิดสามารถถ่ายโอนได้): แนวทางและกฎของ Eric Lippert สำหรับ GetHashCode ()
174 java  hashcode  primes 


15
ฟังก์ชั่นแฮชที่ดีสำหรับเงื่อนไข
ฉันพยายามคิดถึงฟังก์ชันแฮชที่ดีสำหรับสตริง และฉันคิดว่ามันเป็นความคิดที่ดีที่จะสรุปค่ายูนิโค้ดของอักขระห้าตัวแรกในสตริง (สมมติว่ามีห้าตัวหรือหยุดที่จุดสิ้นสุด) นั่นเป็นความคิดที่ดีหรือไม่หรือเป็นสิ่งที่ไม่ดี? ฉันกำลังทำสิ่งนี้ใน Java แต่ฉันไม่คิดว่าจะสร้างความแตกต่างได้มากนัก
160 java  hash  hashtable  hashcode 

8
Apache Commons เท่ากับ / hashCode builder [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันอยากจะรู้ว่าสิ่งที่ผู้คนที่นี่คิดเกี่ยวกับการใช้ org.apache.commons.lang.builder EqualsBuilder/ HashCodeBuilder สำหรับการดำเนินการequals/ hashCode? มันจะเป็นการปฏิบัติที่ดีกว่าการเขียนของคุณเอง? เล่นกับไฮเบอร์เนตได้ดีหรือไม่? ความคิดเห็นของคุณคืออะไร

20
มีฟังก์ชั่นแฮชโค้ดใน JavaScript หรือไม่?
โดยพื้นฐานแล้วฉันกำลังพยายามสร้างวัตถุของวัตถุที่ไม่ซ้ำกันชุด ฉันมีความคิดที่ยอดเยี่ยมเพียงแค่ใช้วัตถุ JavaScript กับวัตถุสำหรับชื่อคุณสมบัติ เช่น, set[obj] = true; ใช้งานได้จนถึงจุดหนึ่ง มันใช้งานได้ดีกับสตริงและตัวเลข แต่ด้วยวัตถุอื่นพวกมันดูเหมือนจะ "แฮช" เป็นค่าเดียวกันและเข้าถึงคุณสมบัติเดียวกัน มีวิธีที่ฉันสามารถสร้างค่าแฮชที่ไม่ซ้ำกันสำหรับวัตถุหรือไม่? สตริงและตัวเลขทำได้อย่างไรฉันสามารถแทนที่การทำงานแบบเดียวกันได้หรือไม่?
150 javascript  hash  set  hashcode 

6
วิธีที่ถูกต้องและดีในการติดตั้ง __hash __ () คืออะไร
วิธีที่ถูกต้องและดีในการใช้__hash__()คืออะไร? ฉันกำลังพูดถึงฟังก์ชั่นที่คืนค่าแฮชโค้ดที่ใช้แทรกวัตถุลงในพจนานุกรมแฮชเทเบิลหรือที่รู้จักกันในชื่อ เมื่อ__hash__()คืนค่าจำนวนเต็มและใช้สำหรับวัตถุ "binning" ใน hashtables ฉันคิดว่าค่าของจำนวนเต็มที่ส่งคืนควรกระจายอย่างสม่ำเสมอสำหรับข้อมูลทั่วไป (เพื่อลดการชน) การปฏิบัติที่ดีในการรับค่าดังกล่าวคืออะไร การชนเป็นปัญหาหรือไม่ ในกรณีของฉันฉันมีชั้นเรียนขนาดเล็กซึ่งทำหน้าที่เป็นคลาสคอนเทนเนอร์ที่มี ints บางอย่างลอยบางและสตริง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.