ความแตกต่างที่สำคัญ – คอลเลกชันทั่วไปเทียบกับที่ไม่ใช่ทั่วไปใน C
A คอลเลกชันทั่วไปเป็นคลาสที่ให้ความปลอดภัยประเภทโดยไม่ต้องมาจากประเภทคอลเลกชันพื้นฐานและใช้สมาชิกเฉพาะประเภท คอลเล็กชันที่ไม่ใช่แบบทั่วไปเป็นคลาสเฉพาะสำหรับการจัดเก็บและดึงข้อมูลซึ่งให้การสนับสนุนสแต็ค คิว รายการ และแฮชเทเบิล ความแตกต่างที่สำคัญระหว่างคอลเล็กชันทั่วไปและไม่ใช่ทั่วไปใน Cคือคอลเล็กชันทั่วไปมีการพิมพ์อย่างมากในขณะที่คอลเล็กชันที่ไม่ใช่ทั่วไปไม่ได้พิมพ์อย่างเข้มงวด
Generic Collection ใน C คืออะไร
คอลเลกชันที่ไม่ใช่ทั่วไป เช่น ArrayList, Queue, Stack เป็นต้นสามารถจัดเก็บองค์ประกอบของข้อมูลประเภทต่างๆ เมื่อได้รับไอเท็มแล้ว โปรแกรมเมอร์ควรพิมพ์ cast ให้เป็นชนิดข้อมูลที่ถูกต้อง มิฉะนั้น อาจทำให้เกิดข้อยกเว้นรันไทม์ได้ สามารถใช้คลาสการรวบรวมทั่วไปเพื่อแก้ไขปัญหานี้ คอลเล็กชันทั่วไปจัดเก็บองค์ประกอบภายในอาร์เรย์ของประเภทจริง ดังนั้นจึงไม่จำเป็นต้องหล่อแบบ สามารถใช้เพื่อเก็บองค์ประกอบของประเภทหรือประเภทที่ระบุ คลาสคอลเลกชันทั่วไปบางคลาส ได้แก่ List, Dictionary, SortedList, HashSet, Queue, Stack.
GenericList มีองค์ประกอบประเภทที่ระบุ สามารถเพิ่มรายการตามลำดับเมื่อเพิ่มองค์ประกอบ เมื่อมีข้อความดังต่อไปนี้ องค์ประกอบทั้งหมดที่สามารถเก็บไว้ใน list1 ควรเป็นจำนวนเต็ม
รายการ 1 – รายการใหม่ ();
พจนานุกรมทั่วไปในภาษา C คือชุดของคีย์และค่าต่างๆ เมื่อมีคำสั่งดังนี้ object dictionary1 สามารถจัดเก็บคีย์ชนิด int และค่าประเภทสตริงได้
พจนานุกรมพจนานุกรม1=พจนานุกรมใหม่ ();
A คอลเล็กชัน SortedList ทั่วไปจะจัดเก็บคู่คีย์และค่าในลำดับจากน้อยไปมากของคีย์โดยค่าเริ่มต้น ตัวอย่างด้านล่างเก็บคีย์ของประเภท int และค่าของประเภทสตริง
SortedList s0=ใหม่ SortedList ();
เหล่านี้คือตัวอย่างบางส่วนสำหรับ Generic Collection ใน C คอลเล็กชันเหล่านี้สามารถจัดเก็บค่าของประเภทข้อมูลที่ระบุได้หลายค่า ดังนั้นพวกเขาจึงถูกพิมพ์อย่างแรง
คอลเล็กชั่นทั่วไปใน C คืออะไร
อาร์เรย์สามารถใช้เก็บหลายองค์ประกอบได้ ข้อเสียประการหนึ่งคือสามารถจัดเก็บองค์ประกอบของประเภทข้อมูลเดียวกันได้ มีคลาสใน Cที่สามารถใช้เพื่อเก็บค่าหรืออ็อบเจ็กต์จำนวนมากที่เรียกว่าคอลเล็กชัน คอลเลกชันช่วยในการจัดเก็บ อัปเดต ลบ ค้นหา จัดเรียงวัตถุขนาดของคอลเลกชันสามารถเพิ่มหรือลดแบบไดนามิกได้
บางคลาสของคอลเล็กชันที่ไม่ใช่ทั่วไป ได้แก่ ArrayList, SortedList, Stack, Queue และ HashTable แต่ละคลาสคอลเลกชันใช้อินเทอร์เฟซ IEnumerable ช่วยในการวนซ้ำองค์ประกอบของรายการในคอลเลกชันโดยใช้ลูป foreach
ArrayList เป็นทางเลือกแทนอาร์เรย์ หากมีอาร์เรย์ที่เก็บองค์ประกอบได้ 10 รายการ จะไม่สามารถเก็บองค์ประกอบได้ 20 รายการ หากอาร์เรย์เริ่มต้นเป็น 10 องค์ประกอบ แต่เก็บเพียง 5 องค์ประกอบ ส่วนที่เหลือจะไม่ถูกใช้งาน ดังนั้นอาร์เรย์จึงได้รับการแก้ไข ใน ArrayList คุณสามารถเพิ่มหรือลบองค์ประกอบตามดัชนีได้ จะช่วยให้การจัดสรรหน่วยความจำแบบไดนามิก วิธีการจัดเรียงสามารถใช้เพื่อจัดเรียงองค์ประกอบในลำดับจากน้อยไปมาก
HashTable ถูกใช้เพื่อแสดงชุดของคู่ค่าคีย์ มีการจัดระเบียบตาม hashCode ของคีย์ ดังนั้นทุกองค์ประกอบจึงมีคู่ค่าคีย์ คีย์สามารถใช้เพื่อเข้าถึงองค์ประกอบเฉพาะในคอลเล็กชันสแต็คแสดงถึงการเข้าถึงรายการสุดท้ายเข้าก่อนออกก่อน คิวใช้สำหรับเข้าก่อนออกรายการก่อน นี่คือคอลเล็กชันที่ไม่ใช่แบบทั่วไปบางส่วนที่รองรับโดย Cคอลเลกชันเหล่านี้สามารถจัดเก็บองค์ประกอบประเภทต่างๆ
ความคล้ายคลึงกันระหว่างคอลเลกชันทั่วไปและไม่ใช่ทั่วไปใน C คืออะไร
ทั้งคอลเลกชันทั่วไปและที่ไม่ใช่แบบทั่วไปสามารถใช้เพื่อจัดเก็บองค์ประกอบหลายรายการใน C
ความแตกต่างระหว่างคอลเลกชันทั่วไปและไม่ใช่ทั่วไปใน C คืออะไร
Generic vs Non-Generic Collection ใน C |
|
A คอลเลกชันทั่วไปเป็นคลาสที่ให้ความปลอดภัยประเภทโดยไม่ต้องมาจากประเภทคอลเลกชันพื้นฐานและใช้งานสมาชิกเฉพาะประเภท | A คอลเลกชั่นที่ไม่ใช่แบบทั่วไปเป็นคลาสเฉพาะสำหรับการจัดเก็บและดึงข้อมูลที่สนับสนุนสแต็ก คิว รายการ และตารางแฮช |
เนมสเปซ | |
คลาส Generic Collection อยู่ในระบบ ของสะสม เนมสเปซทั่วไป | คลาส Non-generic Collection อยู่ในระบบ เนมสเปซของคอลเล็กชัน |
ประเภท | |
พิมพ์คอลเลกชันทั่วไปอย่างยิ่ง | A คอลเลกชันที่ไม่ใช่แบบทั่วไปไม่ได้ถูกพิมพ์อย่างเข้มงวด |
การจัดเก็บองค์ประกอบ | |
คอลเลกชันทั่วไปจัดเก็บองค์ประกอบภายในอาร์เรย์ของประเภทที่แท้จริง | คอลเลกชันที่ไม่ใช่ทั่วไปเก็บองค์ประกอบภายในอาร์เรย์วัตถุเพื่อให้สามารถจัดเก็บข้อมูลประเภทใดก็ได้ |
สรุป – คอลเลกชันทั่วไปเทียบกับที่ไม่ใช่ทั่วไปใน C
บทความนี้กล่าวถึงความแตกต่างระหว่างคอลเลกชันทั่วไปและไม่ใช่ทั่วไปใน C ความแตกต่างระหว่างคอลเล็กชันทั่วไปและไม่ใช่ทั่วไปคือคอลเล็กชันทั่วไปถูกพิมพ์อย่างเข้มงวดในขณะที่คอลเล็กชันที่ไม่ใช่ทั่วไปไม่ได้พิมพ์อย่างเข้มงวด