ความแตกต่างระหว่างชุดและรายการ (พร้อมตาราง)

สารบัญ:

Anonim

เมื่อพูดถึง JDK 2.0, Hashtable, Vectors และ Arrays ถูกใช้เพื่อจัดกลุ่มวัตถุให้เป็นหน่วยเดียว แต่ในเฟรมเวิร์ก JDK 8 ของคอลเล็กชันก็มีอยู่จริง โดยทั่วไปจะมีอินเทอร์เฟซมากมายในการทำงานกับการรวบรวมข้อมูล

ในหมู่พวกเขา ชุดและรายการใช้เพื่อจัดกลุ่มวัตถุ ทั้งคู่ช่วยขยายส่วนต่อประสานการรวบรวม ทั้งสองเป็นโครงสร้างข้อมูลสองโครงสร้างที่ได้รับการสนับสนุนโดย c# อินเทอร์เฟซทั้งสองนี้ค่อนข้างสับสน แต่บทความนี้เน้นความแตกต่างระหว่างชุดและรายการเพื่อขจัดความสับสน

ตั้งเทียบกับรายการ

ความแตกต่างหลักระหว่าง set และ list คือ ชุดนั้นไม่สามารถทำซ้ำได้ และหากสิ่งนั้นปรากฏขึ้น ค่าจะถูกเขียนทับโดยอัตโนมัติ ในทางกลับกัน รายการอนุญาตให้จัดเก็บค่าที่ซ้ำกัน iterator เป็นวิธีการเดียวที่ใช้โดย set ในขณะที่ทั้ง ListIterator และ iterator method ถูกใช้โดยรายการ

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

รายการคือชุดของรายการหรือค่าประเภทต่างๆ ในรายการ รายการต่างๆ จะถูกคั่นด้วยความช่วยเหลือของ (,) และปิดด้วยวงเล็บเหลี่ยม องค์ประกอบที่มีอยู่ในรายการสามารถเข้าถึงได้โดยดัชนี สามารถจัดเก็บองค์ประกอบต่างๆ

ตารางเปรียบเทียบระหว่างชุดและรายการ

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

ชุดคืออะไร?

แนวคิดเรื่องเซตยังพบเห็นได้ในวิชาคณิตศาสตร์ และในที่นี้มีความหมายเหมือนกันไม่มากก็น้อย ในกรณีส่วนใหญ่ มันคือชุดขององค์ประกอบที่คล้ายคลึงกันและโดยทั่วไปหมายถึงชุดขององค์ประกอบ สามารถล้างด้วยตัวอย่าง:

อินพุตเป็นชุด: 20, 10, 30, 50

มันถูกเก็บไว้ในชุดเป็น 10, 20, 30, 50

องค์ประกอบที่จัดเรียงที่นี่ไม่อยู่ในลำดับการแทรก ดังนั้น ก่อนจัดเก็บองค์ประกอบ มันมักจะเรียงลำดับองค์ประกอบ ซึ่งเป็นคุณลักษณะ ข้อยกเว้นที่นี่คือ linkedhashSet เนื่องจากรักษาลำดับการแทรกองค์ประกอบ

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

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

รายการคืออะไร?

รายการนี้คล้ายกับอาร์เรย์ขนาดไดนามิกที่ประกาศในภาษาอื่น (ArrayList ใน Java และ vector ใน C ++) ไม่จำเป็นต้องเป็นเนื้อเดียวกันเสมอไป และนั่นเป็นเหตุผลว่าทำไมมันถึงเป็นเครื่องมือที่ทรงพลังที่สุดใน Python ใน Python รายการมีจำนวนที่แน่นอนและมีการเรียงลำดับ

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

แต่ละองค์ประกอบที่อยู่ในรายการมีตำแหน่งที่แน่นอน ซึ่งทำให้องค์ประกอบสามารถทำซ้ำในรายการได้ แต่ละองค์ประกอบมีความน่าเชื่อถือและสถานที่ที่แตกต่างกัน เป็นเครื่องมือที่มีประโยชน์ในการรักษาลำดับข้อมูลและทำซ้ำต่อไป

มีหลายวิธีในรายการ Python เพื่อพิมพ์รายการทั้งหมดด้วยองค์ประกอบที่มีอยู่ทั้งหมด เมื่อพูดถึงการพิมพ์ช่วงองค์ประกอบเฉพาะจากรายการ การทำงานของสไลซ์จะเข้ามามีบทบาท โดยทั่วไปจะดำเนินการในรายการโดยใช้เครื่องหมายทวิภาค

ความแตกต่างหลักระหว่างชุดและรายการ

บทสรุป

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

ชุดไม่สามารถอนุญาตให้ทำซ้ำได้ และหากสิ่งนี้ปรากฏขึ้น ค่าจะถูกเขียนทับโดยอัตโนมัติ ในทางกลับกัน รายการอนุญาตให้จัดเก็บค่าที่ซ้ำกัน ในชุดจะมีค่า Null เพียงค่าเดียว ในขณะที่มีค่า Null หลายค่าอยู่ในรายการ iterator เป็นวิธีการเดียวที่ใช้โดย set ในขณะที่ทั้ง ListIterator และ iterator method ถูกใช้โดยรายการ ในชุด อิลิเมนต์เป็นดัชนี และแต่ละลูปใช้เพื่อเข้าถึงองค์ประกอบ ในทางกลับกัน องค์ประกอบของรายการสามารถเข้าถึงได้โดยใช้ดัชนี

อ้างอิง

ความแตกต่างระหว่างชุดและรายการ (พร้อมตาราง)