ความแตกต่างระหว่างรายการและตั้งค่าใน Java

ผู้เขียน: Laura McKinney
วันที่สร้าง: 2 เมษายน 2021
วันที่อัปเดต: 16 พฤษภาคม 2024
Anonim
Java for C# Developers
วิดีโอ: Java for C# Developers

เนื้อหา


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

  1. แผนภูมิเปรียบเทียบ
  2. คำนิยาม
  3. ความแตกต่างที่สำคัญ
  4. ข้อสรุป

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบรายการ ชุด
ขั้นพื้นฐานรายการรักษาลำดับขององค์ประกอบที่เก็บไว้ในรายการชุดไม่รักษาลำดับการแทรกโดยเฉพาะ แต่ 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

  1. ลำดับขององค์ประกอบ / วัตถุในคอลเลกชันจะยังคงอยู่ในรายการในขณะที่ชุดไม่รักษาลำดับขององค์ประกอบ แต่มีข้อยกเว้น LinkedHashSet รักษาคำสั่งแทรก
  2. รายการสามารถมีองค์ประกอบที่ซ้ำกันตามที่ระบุองค์ประกอบใด ๆ ที่มีดัชนี แต่ชุดไม่อนุญาตให้มีองค์ประกอบที่ซ้ำกันเนื่องจากมันไม่มีองค์ประกอบของดัชนีชนิดใด ๆ เพื่อระบุวัตถุใด ๆ ในคอลเลกชัน
  3. รายการกำหนดวิธีการบางอย่างด้วยตัวเองนอกเหนือจากวิธีการที่กำหนดไว้ในคอลเลกชัน ในทางกลับกัน Set ไม่ได้กำหนดวิธีการใด ๆ ของตัวเอง แต่จะ จำกัด วิธีของการรวบรวมเพื่อเพิ่มองค์ประกอบที่ซ้ำกัน
  4. รายการถูกนำไปใช้โดย ArrayList, LinkedList, CopyOnWriteArrayList, Vector, การเชื่อมต่อสแต็ก ในทางกลับกันการตั้งค่าถูกนำมาใช้โดย HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet

สรุป:

การใช้รายการและการตั้งค่าอินเตอร์เฟซขึ้นอยู่กับความต้องการ หากลำดับของวัตถุ / องค์ประกอบมีความสำคัญคุณจะต้องใช้รายการส่วนต่อประสาน หากคุณไม่ต้องการองค์ประกอบที่ซ้ำกันในคอลเลกชันของคุณคุณจะต้องใช้การตั้งค่าอินเตอร์เฟซ