ความแตกต่างระหว่างรายการและตั้งค่าใน Java
เนื้อหา
รายการและตั้งค่าการเชื่อมต่อขยายคอลเลกชัน ทั้งคู่เก็บชุดขององค์ประกอบหรือวัตถุ แต่ความแตกต่างที่สำคัญที่แตกต่างจากกันคือรายการคือชุดขององค์ประกอบที่สั่งซื้อองค์ประกอบจะถูกเพิ่มหรือลบหรือเข้าถึงด้วยความช่วยเหลือของตัวแปรดัชนี ในทางกลับกัน Set เป็นกลุ่มของวัตถุที่ชุดสะสมไม่อนุญาตให้มีองค์ประกอบที่ซ้ำกัน ให้เราศึกษาความแตกต่างเพิ่มเติมระหว่าง List และ Set interfaces ด้วยความช่วยเหลือของกราฟเปรียบเทียบที่แสดงด้านล่าง
- แผนภูมิเปรียบเทียบ
- คำนิยาม
- ความแตกต่างที่สำคัญ
- ข้อสรุป
แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | รายการ | ชุด |
---|---|---|
ขั้นพื้นฐาน | รายการรักษาลำดับขององค์ประกอบที่เก็บไว้ในรายการ | ชุดไม่รักษาลำดับการแทรกโดยเฉพาะ แต่ HashSet ที่เชื่อมโยงจะรักษาลำดับการแทรก |
การทำสำเนา | รายการอาจมีองค์ประกอบที่ซ้ำกัน | เพิ่ม () วิธีการส่งกลับเท็จถ้าคุณพยายามที่จะแทรกองค์ประกอบที่ซ้ำกัน |
วิธีการ | นอกจากวิธีที่กำหนดไว้ในการรวบรวมรายการกำหนดวิธีการบางอย่างของตัวเอง | ชุดไม่ได้กำหนดวิธีการเพิ่มเติมใด ๆ |
การดำเนินงาน | รายการถูกนำไปใช้โดย ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack | ชุดนำมาใช้โดย HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet |
ความหมายของรายการ
รายการอินเตอร์เฟสจะขยายส่วนต่อประสาน Collection รายการคือชุดขององค์ประกอบหรือวัตถุที่ได้รับคำสั่ง แตกต่างจากชุดรายการอาจมีองค์ประกอบที่ซ้ำกัน นอกจากวิธีการที่กำหนดไว้ในรายการรวบรวมกำหนดวิธีการบางอย่างของตัวเองเช่นดัชนีตาม () และวิธีการ set () เมธอด add () และ remove () สืบทอดมาจากคอลเล็กชันที่เพิ่มหรือลบองค์ประกอบที่ระบุจากดัชนีที่ระบุในอาร์กิวเมนต์เมธอด รายการเป็นอาร์เรย์ชนิดหนึ่งที่มีขนาดโตขึ้นเมื่อเราเพิ่มองค์ประกอบลงในรายการ
รายการไม่ได้กำหนดวิธีการใด ๆ ที่จะดำเนินการกับช่วงของดัชนีในรายการ มันกำหนดวิธีการรายการย่อย () ซึ่งจะส่งกลับรายการย่อยจากรายการต้นฉบับของช่วงที่ระบุ การเปลี่ยนแปลงที่คุณทำกับรายการย่อยจะปรากฏในรายการต้นฉบับด้วย รายการส่วนติดต่อถูกนำมาใช้โดย ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack
ความหมายของชุด
ชุดอินเตอร์เฟสขยายส่วนต่อประสาน Collection การตั้งค่าอินเตอร์เฟซคือการรวบรวมหรือกลุ่มวัตถุที่ไม่ซ้ำวัตถุใด ๆ ในนั้น นั่นหมายความว่าการอ้างอิงสองรายการไม่สามารถอ้างถึงวัตถุเดียวหรือการอ้างอิงเดียวไม่สามารถอ้างถึงวัตถุสองรายการได้หรือไม่มีการอ้างอิงสองรายการที่อ้างถึง Null คำสั่งหรือลำดับขององค์ประกอบนั้นไม่ใช่เซ็ตที่สำคัญ แต่ไม่ใช่ว่าจะห้ามชุดที่สั่ง
ชุดอินเตอร์เฟสไม่ได้กำหนดวิธีการใด ๆ นอกเหนือจากวิธีที่กำหนดในคอลเลกชัน แต่จะ จำกัด วิธีการเพิ่ม () และ addall () ของการรวบรวมเพื่อเพิ่มวัตถุที่ซ้ำกันในคอลเลกชัน หากคุณพยายามที่จะเพิ่มวัตถุที่ซ้ำกันในคอลเลกชันโดยใช้ add () วิธีการเก็บมันจะส่งกลับเท็จ มิฉะนั้นจะส่งคืนจริง ชุดอินเตอร์เฟสถูกนำมาใช้โดย HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet
- ลำดับขององค์ประกอบ / วัตถุในคอลเลกชันจะยังคงอยู่ในรายการในขณะที่ชุดไม่รักษาลำดับขององค์ประกอบ แต่มีข้อยกเว้น LinkedHashSet รักษาคำสั่งแทรก
- รายการสามารถมีองค์ประกอบที่ซ้ำกันตามที่ระบุองค์ประกอบใด ๆ ที่มีดัชนี แต่ชุดไม่อนุญาตให้มีองค์ประกอบที่ซ้ำกันเนื่องจากมันไม่มีองค์ประกอบของดัชนีชนิดใด ๆ เพื่อระบุวัตถุใด ๆ ในคอลเลกชัน
- รายการกำหนดวิธีการบางอย่างด้วยตัวเองนอกเหนือจากวิธีการที่กำหนดไว้ในคอลเลกชัน ในทางกลับกัน Set ไม่ได้กำหนดวิธีการใด ๆ ของตัวเอง แต่จะ จำกัด วิธีของการรวบรวมเพื่อเพิ่มองค์ประกอบที่ซ้ำกัน
- รายการถูกนำไปใช้โดย ArrayList, LinkedList, CopyOnWriteArrayList, Vector, การเชื่อมต่อสแต็ก ในทางกลับกันการตั้งค่าถูกนำมาใช้โดย HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet
สรุป:
การใช้รายการและการตั้งค่าอินเตอร์เฟซขึ้นอยู่กับความต้องการ หากลำดับของวัตถุ / องค์ประกอบมีความสำคัญคุณจะต้องใช้รายการส่วนต่อประสาน หากคุณไม่ต้องการองค์ประกอบที่ซ้ำกันในคอลเลกชันของคุณคุณจะต้องใช้การตั้งค่าอินเตอร์เฟซ