Skip to main content

อาร์เรย์แบบไดนามิกคืออะไร?

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

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

องค์ประกอบในอาร์เรย์สามารถเข้าถึงได้โดยดัชนีเท่านั้นและการพยายามเข้าถึงดัชนีนอกอาร์เรย์มักจะไม่ทำให้เกิดปัญหาการทุจริตของหน่วยความจำคลาสเวกเตอร์ Java นั้นเทียบเท่ากับคลาสเวกเตอร์ C ++ และไม่ได้ซิงโครไนซ์เพื่อเปิดใช้งานการเข้าถึงโดยหลายเธรดArrayList และ CopyOnWriteArrayList ในทางตรงกันข้ามมีทั้งความปลอดภัยของเธรดในสาม CopyonWriteArrayList เป็นคลาสที่ใช้แรงงานมากที่สุดเพราะมันสร้างอาร์เรย์แบบไดนามิกใหม่อย่างสมบูรณ์ทุกครั้งที่มีการเขียนค่าใหม่ไปยังอาร์เรย์อาร์เรย์แบบไดนามิกจะถูกนำไปใช้ในลักษณะเดียวกันโดยไม่คำนึงถึงภาษาคอมพิวเตอร์ที่เกี่ยวข้อง แต่ขึ้นอยู่กับภาษาเฉพาะอาจมีความสามารถอื่น ๆ ที่สร้างขึ้นด้านบนของมันเช่นเดียวกับอาร์เรย์แบบคงที่อาร์เรย์แบบไดนามิกจะไม่ จำกัด ประเภทของวัตถุที่สามารถเก็บไว้ภายในพวกเขาตราบใดที่มันเป็นวัตถุประเภทเดียวกันทั้งหมดโปรแกรมเมอร์ไม่จำเป็นต้องเข้าถึงอาร์เรย์แบบไดนามิกโดยตรงมันสามารถทำได้ผ่านชั้นเรียนที่ห่อหุ้มอาร์เรย์เพื่อใช้งานง่ายการใช้อาร์เรย์เหล่านี้อย่างเหมาะสมสามารถช่วยโปรแกรมเมอร์ด้วยการจัดระเบียบข้อมูลภายในรหัสและด้วยการสร้างรหัสที่เข้าใจได้ซึ่งให้ยืมตัวเองเพื่อการบำรุงรักษาที่ง่าย