วิธีการใช้ HashSet ใน Java?

Withi Kar Chi Hashset Ni Java



Java มีคลาสคอลเลกชันที่เรียกว่า HashSet ซึ่งใช้อินเทอร์เฟซ Set ซึ่งใช้ตารางแฮชสำหรับการจัดเก็บ ใช้เพื่อเก็บชุดขององค์ประกอบที่แตกต่างกันในการจัดเรียงใดๆ ข้อได้เปรียบหลักของการใช้ HashSet คือช่วยให้เข้าถึงองค์ประกอบต่างๆ ได้อย่างรวดเร็ว เนื่องจากใช้การแฮชเพื่อจัดเก็บองค์ประกอบต่างๆ HashSet เหมาะสำหรับการลบรายการที่ซ้ำกันและค้นหาองค์ประกอบทั่วไประหว่างสองชุด

คู่มือนี้จะอธิบาย HashSet พร้อมกับตัวอย่างที่เป็นไปได้ใน Java

วิธีการใช้ HashSet ใน Java?

หากต้องการใช้ HashSet ใน Java ให้นำเข้าคลาส HashSet ก่อน หลังจากนั้น สร้างวัตถุ HashSet และเพิ่มองค์ประกอบโดยใช้ ' เพิ่ม() ' วิธี. ใช้ฟังก์ชัน remove() เพื่อกำจัดสมาชิกของ HashSet







ผู้ใช้ยังสามารถใช้ hashSet เพื่อคำนวณว่ามีองค์ประกอบอยู่ใน HashSet หรือไม่ สุดท้าย หากต้องการวนซ้ำองค์ประกอบใน HashSet ให้ใช้ for-each วนซ้ำ



ต่อไปนี้เป็นตัวอย่างวิธีใช้ HashSet ใน Java:



ตัวอย่างที่ 1: การลบรายการที่ซ้ำออกจาก ArrayList
กรณีการใช้งานทั่วไปอย่างหนึ่งสำหรับ HashSet คือการลบรายการที่ซ้ำกันออกจากคอลเล็กชัน นี่คือตัวอย่างวิธีใช้ HashSet เพื่อลบรายการที่ซ้ำออกจาก ArrayList:





นำเข้า ชวา ใช้ประโยชน์ . รายการอาร์เรย์ ;
นำเข้า ชวา ใช้ประโยชน์ . ชุดแฮช ;

สาธารณะ ระดับ ลบตัวอย่างที่ซ้ำกัน {
สาธารณะ คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) {
ArrayList list WithDuplicates = ใหม่ รายการอาร์เรย์ ( ) ;
รายการด้วยรายการที่ซ้ำกัน เพิ่ม ( 'แอปเปิล' ) ;
รายการด้วยรายการที่ซ้ำกัน เพิ่ม ( 'กล้วย' ) ;
รายการด้วยรายการที่ซ้ำกัน เพิ่ม ( 'ส้ม' ) ;
รายการด้วยรายการที่ซ้ำกัน เพิ่ม ( 'แอปเปิล' ) ;
รายการด้วยรายการที่ซ้ำกัน เพิ่ม ( 'ส้ม' ) ;

HashSet ตั้งค่าโดยไม่ต้องทำซ้ำ = ใหม่ ชุดแฮช ( รายการด้วยรายการที่ซ้ำกัน ) ;
รายการ ArrayList โดยไม่ต้องทำซ้ำ = ใหม่ รายการอาร์เรย์ ( setWithDuplicates ) ;

ระบบ. ออก . พิมพ์ ( 'รายการที่มีรายการซ้ำ: ' + รายการด้วยรายการที่ซ้ำกัน ) ;
ระบบ. ออก . พิมพ์ ( 'รายการที่ไม่มีรายการซ้ำ: ' + รายการโดยไม่ต้องทำซ้ำ ) ;
}
}

คำอธิบายของรหัสด้านบนได้รับด้านล่าง:

  • ขั้นแรก สร้าง ArrayList ของสตริงที่ซ้ำกัน
  • จากนั้นสร้าง HashSet จาก ArrayList เป็นเพราะ HashSet สามารถมีได้เฉพาะองค์ประกอบที่ไม่ซ้ำกัน ซึ่งจะเป็นการลบรายการที่ซ้ำกันได้อย่างมีประสิทธิภาพ
  • ในตอนท้าย ให้สร้าง ArrayList ใหม่จาก HashSet เพื่อรับรายการที่ไม่มีรายการซ้ำกัน

เอาต์พุต



ผลลัพธ์แสดงว่าการทำซ้ำถูกลบออกจากรายการแล้ว

ตัวอย่างที่ 2: การหาองค์ประกอบร่วมระหว่างสองเซต
กรณีการใช้งานอื่นสำหรับ HashSet คือการค้นหาองค์ประกอบทั่วไประหว่างสองชุด นี่คือตัวอย่างวิธีใช้ HashSet เพื่อค้นหาองค์ประกอบทั่วไประหว่างสองชุด:

นำเข้า ชวา ใช้ประโยชน์ . ชุดแฮช ;

สาธารณะ ระดับ ค้นหาองค์ประกอบทั่วไปตัวอย่าง { // ระบุชื่อคลาส
สาธารณะ คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) {
ชุดแฮชเซ็ต1 = ใหม่ ชุดแฮช ( ) ;
ชุดที่ 1 เพิ่ม ( 1 ) ;
ชุดที่ 1 เพิ่ม ( 2 ) ; // เพิ่มค่าที่นี่
ชุดที่ 1 เพิ่ม ( 3 ) ;

แฮชเซ็ต set2 = ใหม่ ชุดแฮช ( ) ;
ชุดที่ 2 เพิ่ม ( 2 ) ;
ชุดที่ 2 เพิ่ม ( 3 ) ; // เพิ่มค่าที่นี่
ชุดที่ 2 เพิ่ม ( 4 ) ;

HashSet CommonElements = ใหม่ ชุดแฮช ( ชุดที่ 1 ) ;
องค์ประกอบทั่วไป เก็บทั้งหมด ( ชุดที่ 2 ) ;

ระบบ. ออก . พิมพ์ ( 'ชุดที่ 1: ' + ชุดที่ 1 ) ;
ระบบ. ออก . พิมพ์ ( 'ชุดที่ 2: ' + ชุดที่ 2 ) ;
ระบบ. ออก . พิมพ์ ( 'องค์ประกอบทั่วไป: ' + องค์ประกอบทั่วไป ) ;
}
}

คำอธิบายได้รับด้านล่าง:

  • ขั้นแรก สร้างออบเจ็กต์ HashSet สองรายการและเพิ่มจำนวนเต็มเข้าไป
  • จากนั้นสร้างวัตถุ HashSet ใหม่และเพิ่มองค์ประกอบทั้งหมดจาก set1 เข้าไป
  • หลังจากนั้น เรียกวิธีการtainAll() บนวัตถุ HashSet ใหม่นี้ โดยส่งผ่าน set2 เป็นอาร์กิวเมนต์
  • มันลบองค์ประกอบใด ๆ ออกจาก HashSet ใหม่ที่ไม่อยู่ใน set2 ได้อย่างมีประสิทธิภาพ เหลือเพียงองค์ประกอบทั่วไป

เอาต์พุต

ผลลัพธ์แสดงว่าพบองค์ประกอบทั่วไประหว่างสองชุด

บทสรุป

HashSet เป็นคลาสคอลเลกชันที่มีประสิทธิภาพใน Java ใช้เพื่อจัดเก็บชุดขององค์ประกอบที่ไม่ซ้ำใครโดยไม่เรียงลำดับ มีวิธีการต่างๆ เช่น “ เพิ่ม() ”, “ ลบ() ', และ ' ประกอบด้วย() ” เพื่อเพิ่ม ลบ และตรวจสอบการมีอยู่ขององค์ประกอบใน HashSet มันวนซ้ำองค์ประกอบและเรียบง่ายด้วย for-each ลูป ด้วยการใช้เมธอด hashCode() และ equals() ผู้ใช้ยังสามารถใช้วัตถุที่กำหนดเองใน HashSet

คู่มือนี้ครอบคลุมตัวอย่างที่เป็นไปได้ทั้งหมดในการใช้ HashSet ใน Java