Skip to main content

ArrayList คืออะไร?

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

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

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

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

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