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


