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

HashSet สรุปการดำเนินการที่อนุญาตให้มีการเปรียบเทียบองค์ประกอบในคอลเลกชัน แฮชเซ็ตมักใช้เพื่อกำหนดองค์ประกอบที่ทับซ้อนกันและไม่ซ้ำกันภายในคอลเลกชัน

9
เหตุใดจึงไม่มี ConcurrentHashSet เทียบกับ ConcurrentHashMap
HashSet ขึ้นอยู่กับ HashMap ถ้าเราดูที่การดำเนินการทุกอย่างจะถูกจัดการภายใต้HashSet<E>HashMap<E,Object> <E> ถูกใช้เป็นกุญแจของ HashMapถูกนำมาใช้เป็นกุญแจสำคัญของ และเรารู้ว่าHashMapมันไม่ปลอดภัย นั่นคือเหตุผลที่เรามีConcurrentHashMapใน Java จากนี้ฉันกำลังสับสนว่าทำไมเราไม่ได้มี ConcurrentHashSet ซึ่งควรจะอยู่บนพื้นฐานที่ConcurrentHashMap? มีอะไรอีกบ้างที่ฉันขาดหายไป? ฉันต้องการใช้Setในสภาพแวดล้อมแบบมัลติเธรด นอกจากนี้ถ้าผมต้องการที่จะสร้างของตัวเองConcurrentHashSetผมจะประสบความสำเร็จได้โดยเพียงแค่การเปลี่ยนHashMapไปConcurrentHashMapและออกจากส่วนที่เหลือเป็นคืออะไร?

13
Hashset กับ Treeset
ฉันชอบต้นไม้ที่ดีO(n*log(n))และเป็นระเบียบเรียบร้อยของพวกเขา TreeSetอย่างไรก็ตามซอฟต์แวร์วิศวกรทุกคนที่ฉันเคยรู้จักได้ถามฉันอย่างชัดเจนว่าทำไมฉันจะใช้ จากแบ็คกราวน์ CS ฉันไม่คิดว่ามันจะสำคัญกับทุกอย่างที่คุณใช้และฉันก็ไม่สนใจที่จะยุ่งกับฟังก์ชั่นแฮชและที่เก็บข้อมูล (ในกรณีของJava) ในกรณีใดบ้างที่ฉันควรใช้HashSeta TreeSet?
496 java  hashset  treeset 

4
กำหนด: HashSet คืออะไร
HashSet โครงสร้างข้อมูล C # HashSet ถูกนำมาใช้ใน. NET Framework 3.5 รายการเต็มรูปแบบของสมาชิกในการดำเนินการที่สามารถพบได้ที่HashSet MSDNหน้า มันใช้อยู่ที่ไหน ทำไมคุณต้องการใช้
420 c#  hashset 

2
มี AddRange ที่เทียบเท่ากับ HashSet ใน C # หรือไม่
ด้วยรายการที่คุณสามารถทำได้: list.AddRange(otherCollection); ไม่มีวิธีการที่หลากหลายเพิ่มในเป็นHashSet วิธีที่ดีที่สุดในการเพิ่มคอลเล็กชันอื่นใน HashSet คืออะไร


19
ความแตกต่างระหว่าง HashSet และ HashMap?
นอกเหนือจากความจริงที่HashSetไม่อนุญาตให้มีค่าซ้ำกันความแตกต่างระหว่างHashMapและHashSetคืออะไร ฉันหมายถึงการนำไปปฏิบัติอย่างชาญฉลาด? มันค่อนข้างคลุมเครือเพราะทั้งคู่ใช้ตารางแฮชเพื่อเก็บค่า

2
เหตุใด HashSet <Point> จึงช้ากว่า HashSet <string> มาก
ฉันต้องการจัดเก็บตำแหน่งพิกเซลบางแห่งโดยไม่อนุญาตให้ซ้ำซ้อนดังนั้นสิ่งแรกที่ควรคำนึงถึงคือHashSet&lt;Point&gt;หรือคลาสที่คล้ายกัน HashSet&lt;string&gt;อย่างไรก็ตามเรื่องนี้ดูเหมือนจะช้ามากเมื่อเทียบกับสิ่งที่ชอบ ตัวอย่างเช่นรหัสนี้: HashSet&lt;Point&gt; points = new HashSet&lt;Point&gt;(); using (Bitmap img = new Bitmap(1000, 1000)) { for (int x = 0; x &lt; img.Width; x++) { for (int y = 0; y &lt; img.Height; y++) { points.Add(new Point(x, y)); } } } ใช้เวลาประมาณ 22.5 วินาที ในขณะที่รหัสต่อไปนี้(ซึ่งไม่ใช่ตัวเลือกที่ดีสำหรับเหตุผลที่ชัดเจน)ใช้เวลาเพียง 1.6 วินาที: HashSet&lt;string&gt; points …

8
ความแตกต่างระหว่าง HashSet <T> และ List <T> คืออะไร?
คุณช่วยอธิบายว่าอะไรคือความแตกต่างระหว่างHashSet&lt;T&gt;และList&lt;T&gt;ใน. NET บางทีคุณอาจจะสามารถอธิบายได้ด้วยเช่นในกรณีสิ่งHashSet&lt;T&gt;ควรได้รับการแนะนำกับList&lt;T&gt;?
156 .net  list  hashset  difference 

10
HashSet vs LinkedHashSet
ความแตกต่างระหว่างพวกเขาคืออะไร? ฉันรู้แล้ว LinkedHashSet เป็น HashSet เวอร์ชันที่สั่งซื้อซึ่งจะรักษารายการที่เชื่อมโยงเป็นสองเท่าในองค์ประกอบทั้งหมด ใช้คลาสนี้แทน HashSet เมื่อคุณใส่ใจกับคำสั่งวนซ้ำ เมื่อคุณวนซ้ำผ่าน HashSet คำสั่งซื้อจะไม่สามารถคาดเดาได้ในขณะที่ LinkedHashSet ช่วยให้คุณสามารถวนซ้ำองค์ประกอบต่างๆตามลำดับที่ถูกแทรกเข้าไป แต่ใน sourcecode ของ LinkedHashSet มีเพียงการเรียก constructors ของ HashSet เท่านั้น รายการที่ถูกเชื่อมโยงสองครั้งและลำดับการแทรกอยู่ที่ไหน

8
การเพิ่มค่าที่ซ้ำกันให้กับ HashSet / HashMap จะแทนที่ค่าก่อนหน้าหรือไม่
โปรดพิจารณาโค้ดด้านล่าง: HashSet hs = new HashSet(); hs.add("hi"); -- (1) hs.add("hi"); -- (2) hs.size()จะให้ 1 as HashSetไม่อนุญาตให้ทำซ้ำดังนั้นจะจัดเก็บองค์ประกอบเดียวเท่านั้น ฉันต้องการทราบว่าถ้าเราเพิ่มองค์ประกอบที่ซ้ำกันแล้วมันแทนที่องค์ประกอบก่อนหน้าหรือไม่เพิ่มเข้าไป? นอกจากนี้จะเกิดอะไรขึ้นHashMapในกรณีเดียวกัน?

11
ฉันควรใช้ HashSet <T> type เมื่อใด
ฉันกำลังสำรวจHashSet&lt;T&gt;ประเภท แต่ฉันไม่เข้าใจว่ามันอยู่ที่ใดในคอลเล็กชัน สามารถใช้แทน a List&lt;T&gt;? ฉันจินตนาการว่าประสิทธิภาพของ a HashSet&lt;T&gt;จะดีขึ้น แต่ฉันไม่เห็นการเข้าถึงองค์ประกอบของแต่ละบุคคล เป็นเพียงการแจงนับเท่านั้น?

4
HashSet เปรียบเทียบองค์ประกอบเพื่อความเท่าเทียมกันอย่างไร
ฉันมีคลาสที่IComparable: public class a : IComparable { public int Id { get; set; } public string Name { get; set; } public a(int id) { this.Id = id; } public int CompareTo(object obj) { return this.Id.CompareTo(((a)obj).Id); } } เมื่อฉันเพิ่มรายการวัตถุของคลาสนี้ในชุดแฮช: a a1 = new a(1); a a2 = new a(2); HashSet&lt;a&gt; …
128 c#  hashset 

7
คอลเลกชันที่อนุญาตเฉพาะรายการที่ไม่ซ้ำกันใน. NET?
มีคอลเล็กชันใน C # ที่จะไม่ให้คุณเพิ่มรายการที่ซ้ำกันหรือไม่? ตัวอย่างเช่นกับชั้นโง่ของ public class Customer { public string FirstName { get; set; } public string LastName { get; set; } public string Address { get; set; } public override int GetHashCode() { return (FirstName + LastName + Address).GetHashCode(); } public override bool Equals(object obj) { Customer C …
106 c#  set  hashset 


5
HashSet <T> เทียบกับ Dictionary <K, V> wrt เวลาค้นหาเพื่อดูว่ามีรายการอยู่หรือไม่
HashSet&lt;T&gt; t = new HashSet&lt;T&gt;(); // add 10 million items Dictionary&lt;K, V&gt; t = new Dictionary&lt;K, V&gt;(); // add 10 million items. .Containsวิธีของใครจะกลับเร็วกว่ากัน? เพื่อชี้แจงความต้องการของฉันคือฉันมีวัตถุ 10 ล้านรายการ (สตริงจริงๆ) ที่ฉันต้องตรวจสอบว่ามีอยู่ในโครงสร้างข้อมูลหรือไม่ ฉันจะไม่ทำซ้ำ

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