แนวคิด
ก่อนอื่นมาดูคอลเลกชันชุดกันเถอะ
(01) Set เป็นอินเทอร์เฟซที่สืบทอดมาจากคอลเลกชัน มันเป็นคอลเลกชันที่ไม่อนุญาตให้มีองค์ประกอบที่ซ้ำกัน
(02) AbstractSet เป็นคลาสนามธรรมซึ่งสืบทอดมาจากบทคัดย่อ AbstractCollection ใช้ฟังก์ชั่นส่วนใหญ่ในชุดให้ความสะดวกสบายสำหรับคลาสการใช้งานที่ตั้งไว้
(03) HASTSET และ TREESET เป็นสองคลาสการใช้งานของชุด
HashSet อาศัย HashMap ซึ่งถูกนำไปใช้จริงผ่าน HashMap องค์ประกอบใน Hashset ไม่เป็นระเบียบ
Treeet อาศัย TreeMap ซึ่งถูกนำไปใช้จริงผ่าน Treemap มีการสั่งองค์ประกอบในชุดต้นไม้
เช่น:
ลองมาดูการใช้ประโยชน์จากชุดคอลเลกชันโดยการละเมิดข้าม:
แพ็คเกจ com.sort; นำเข้า java.util.hashset; นำเข้า java.util.iterator; นำเข้า java.util.set; /*** คอลเลกชันที่ไม่มีองค์ประกอบที่ซ้ำกัน โดยเฉพาะอย่างยิ่งการตั้งค่าไม่มีองค์ประกอบที่ตอบสนอง e1.equals (e2), e1 และ e2, * @author เจ้าของ * */ คลาสสาธารณะ Settest2 {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {set <string> set = new hashset <string> (); set.add ("a"); set.add ("b"); set.add ("c"); set.add ("d"); set.add ("e"); set.add ("e"); set.add ("e"); // ข้อมูลสองเท่าไม่สามารถใส่ใน/*** วิธีการสำรวจ 1, การสำรวจซ้ำ*/สำหรับ (iterator <string> iterator = set.iterator (); iterator.hasnext ();) {system.out.print (iterator.next ()+"); } system.out.println (); System.out.println ("************************"); / *** สำหรับการสำรวจลูป traversal*/ สำหรับ (ค่าสตริง: SET) {System.out.print (ค่า+""); - หมายเหตุ: ประเภทสตริงถูกวางไว้ในคอลเลกชันชุด หากเราใส่อินสแตนซ์ของคลาสที่เรากำหนดเช่นอินสแตนซ์คลาสบุคคลเราต้องใช้ HashCode ใหม่และวิธีการที่เท่าเทียมกันและเขียนใหม่ด้วยฟิลด์คีย์ของเราเองเพราะเมื่อใช้ HashSet วิธีการ HashCode () จะถูกเรียกเพื่อตรวจสอบว่าค่ารหัสแฮชของวัตถุที่เก็บไว้ในคอลเลกชันนั้นสอดคล้องกับค่ารหัส HASH หากไม่สอดคล้องกันให้เพิ่มโดยตรง หากมีความสอดคล้องกันให้เปรียบเทียบวิธีการเท่ากับ หากวิธี Equals ส่งคืนจริงหมายความว่าวัตถุได้รับการเพิ่มและจะไม่มีการเพิ่มวัตถุใหม่มิฉะนั้นจะถูกเพิ่ม