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

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

8
ที่อยู่หน่วยความจำของตัวแปรใน Java
โปรดดูภาพด้านล่าง เมื่อเราสร้างวัตถุใน java ด้วยnewคำหลักเราจะได้รับที่อยู่หน่วยความจำจากระบบปฏิบัติการ เมื่อเราเขียนout.println(objName)เราจะเห็นสตริง "พิเศษ" เป็นผลลัพธ์ คำถามของฉันคือ: ผลลัพธ์นี้คืออะไร หากเป็นที่อยู่หน่วยความจำที่ระบบปฏิบัติการมอบให้เรา: a) ฉันจะแปลงสตริงนี้เป็นไบนารีได้อย่างไร b) ฉันจะรับที่อยู่ตัวแปรจำนวนเต็มหนึ่งตัวได้อย่างไร

8
ความสอดคล้องของ hashCode () บนสตริง Java
ค่า 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 เมื่อใดพยายามระบุให้เจาะจง / เป็นรูปธรรม เป็นไปได้. อัปเดต …
138 java  string  hashcode 

9
GetHashCode แนวทางใน C #
ฉันอ่านในหนังสือ Essential C # 3.0 และ. NET 3.5 ที่: GetHashCode () กลับมาตลอดชีวิตของวัตถุเฉพาะควรคงที่ (ค่าเดียวกัน) แม้ว่าข้อมูลของวัตถุการเปลี่ยนแปลง ในหลายกรณีคุณควรแคชวิธีนี้เพื่อบังคับใช้สิ่งนี้ นี่เป็นแนวทางที่ถูกต้องหรือไม่? ฉันได้ลองใช้บิวด์อินสองตัวใน. NET และพวกเขาก็ไม่ทำตัวแบบนี้
136 c#  .net  hashcode 

5
hashCode ใช้ทำอะไร มันเป็นเอกลักษณ์หรือไม่?
ฉันสังเกตเห็นว่ามีgetHashCode()วิธีในการควบคุมทุกรายการใน WP7 ซึ่งกลับลำดับของตัวเลข ฉันสามารถใช้แฮชโค้ดนี้เพื่อระบุรายการได้ไหม ตัวอย่างเช่นฉันต้องการระบุรูปภาพหรือเพลงในอุปกรณ์และตรวจสอบว่าอยู่ที่ไหน สิ่งนี้สามารถทำได้ถ้า hashcode ที่ให้สำหรับรายการเฉพาะนั้นไม่ซ้ำกัน คุณช่วยอธิบายให้ฉันฟังว่า hashCode นั้นgetHashCode()ใช้ทำอะไรได้บ้าง?
129 c#  hashcode 

2
Boolean.hashCode ()
hashCode()วิธีการของการเรียนแบบบูลจะดำเนินการเช่นนี้ public int hashCode() { return value ? 1231 : 1237; } ทำไมถึงใช้ 1231 และ 1237? ทำไมไม่เป็นอย่างอื่น?
122 java  boolean  hashcode 

12
จะสร้าง HashMap ด้วยปุ่มสองปุ่ม (Key-Pair, Value) ได้อย่างไร?
ฉันมีอาร์เรย์ 2 มิติของจำนวนเต็ม ฉันต้องการให้ใส่ลงใน HashMap แต่ฉันต้องการเข้าถึงองค์ประกอบจาก HashMap ตามดัชนีอาร์เรย์ สิ่งที่ต้องการ: สำหรับ A [2] [5] map.get(2,5)ซึ่งส่งคืนค่าที่เกี่ยวข้องกับคีย์นั้น แต่ฉันจะสร้างแฮชแมปด้วยคีย์คู่ได้อย่างไร หรือโดยทั่วไปหลายคีย์: Map<((key1, key2,..,keyN), Value)ในวิธีที่ฉันสามารถเข้าถึงองค์ประกอบโดยใช้ get (key1, key2, ... keyN) แก้ไข: 3 ปีหลังจากโพสต์คำถามฉันต้องการเพิ่มอีกเล็กน้อย ฉันข้ามมาอีกทางสำหรับNxN matrix. ดัชนีอาร์เรย์iและjสามารถแสดงเป็นวิธีเดียวkeyดังต่อไปนี้: int key = i * N + j; //map.put(key, a[i][j]); // queue.add(key); และสามารถเรียกดูดัชนีได้keyด้วยวิธีนี้: int i = key / N; int …
118 java  hash  hashmap  hashcode 

11
ตัวระบุอ็อบเจ็กต์เฉพาะ. NET
มีวิธีรับตัวระบุเฉพาะของอินสแตนซ์หรือไม่? GetHashCode()เหมือนกันสำหรับการอ้างอิงสองรายการที่ชี้ไปที่อินสแตนซ์เดียวกัน อย่างไรก็ตามสองอินสแตนซ์ที่แตกต่างกันสามารถรับรหัสแฮชเดียวกันได้ (ค่อนข้างง่าย): Hashtable hashCodesSeen = new Hashtable(); LinkedList<object> l = new LinkedList<object>(); int n = 0; while (true) { object o = new object(); // Remember objects so that they don't get collected. // This does not make any difference though :( l.AddFirst(o); int hashCode = o.GetHashCode(); n++; …

6
คุณจะได้รับ "การอ้างอิงวัตถุ" ของวัตถุใน java ได้อย่างไรเมื่อ toString () และ hashCode () ถูกแทนที่
ฉันต้องการพิมพ์ "การอ้างอิงวัตถุ" ของวัตถุใน Java เพื่อวัตถุประสงค์ในการดีบัก คือตรวจสอบให้แน่ใจว่าวัตถุนั้นเหมือนกัน (หรือต่างกัน) ขึ้นอยู่กับสถานการณ์ ปัญหาคือคลาสที่เป็นปัญหาสืบทอดมาจากคลาสอื่นซึ่งได้ลบล้างทั้ง toString () และ hashCode () ซึ่งโดยปกติจะให้ id แก่ฉัน สถานการณ์ตัวอย่าง: การรันแอ็พพลิเคชันแบบมัลติเธรดโดยที่ฉัน (ระหว่างการพัฒนา) ต้องการตรวจสอบว่าเธรดทั้งหมดใช้อินสแตนซ์ของออบเจ็กต์ทรัพยากรเดียวกันหรือไม่
108 java  object  hashcode 

6
.equals และ .hashCode เริ่มต้นจะทำงานกับชั้นเรียนของฉันได้อย่างไร
สมมติว่าฉันมีชั้นเรียนของตัวเอง public class MyObj { /* ... */ } มีคุณลักษณะและวิธีการบางอย่าง ไม่ใช้งานเท่ากับไม่ใช้ hashCode เมื่อเราเรียกเท่ากับและ hashCode แล้วการใช้งานเริ่มต้นคืออะไร? จากคลาส Object? แล้วพวกมันคืออะไร? ค่าเริ่มต้นเท่ากับจะทำงานอย่างไร? hashCode เริ่มต้นจะทำงานอย่างไรและอะไรจะกลับมา? == จะตรวจสอบว่าพวกเขาอ้างอิงถึงวัตถุเดียวกันหรือไม่ดังนั้นจึงเป็นเรื่องง่าย แต่วิธีการเท่ากับ () และ hashCode () ล่ะ?

8
ควรใช้งานเท่ากับและแฮชโค้ดอย่างไรเมื่อใช้ JPA และ Hibernate
คลาสโมเดลควรมีการใช้งานเท่ากับและแฮชโค้ดในไฮเบอร์เนตอย่างไร อะไรคือข้อผิดพลาดที่พบบ่อย? การใช้งานเริ่มต้นดีเพียงพอสำหรับกรณีส่วนใหญ่หรือไม่ การใช้คีย์ธุรกิจมีความหมายหรือไม่? สำหรับฉันแล้วดูเหมือนว่ามันค่อนข้างยากที่จะทำให้มันทำงานได้ถูกต้องในทุกสถานการณ์เมื่อคำนึงถึงการดึงข้อมูลการสร้างรหัสพร็อกซีและอื่น ๆ
103 java  hibernate  orm  equals  hashcode 

6
รหัสแฮชของ ArrayList ที่มีตัวมันเองเป็นองค์ประกอบ
เราสามารถหาhashcodeของlistที่มีตัวมันเองเป็นelement? ฉันรู้ว่านี่เป็นวิธีปฏิบัติที่ไม่ดี แต่นี่คือสิ่งที่ผู้สัมภาษณ์ถาม เมื่อฉันรันรหัสต่อไปนี้มันจะพ่น a StackOverflowError: public class Main { public static void main(String args[]) { ArrayList<ArrayList> a = new ArrayList(); a.add(a); a.hashCode(); } } ตอนนี้ที่นี่ฉันมีสองคำถาม: ทำไมถึงมีStackOverflowError? เป็นไปได้ไหมที่จะหารหัสแฮชด้วยวิธีนี้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.