Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง List และ ArrayList ใน Java

List (Interface)

  • เป็น Interface (ส่วนหนึ่งของ Collection Framework)
  • extends Collection
  • ไม่สามารถ instantiate ได้โดยตรง
  • ใช้สร้างรายการ elements ที่มีลำดับ (ordered) และเข้าถึงได้ด้วย index
  • อนุญาต duplicate elements

ArrayList (Class)

  • เป็น Class implement List
  • extends AbstractList
  • สร้าง instance ได้
  • เป็น Dynamic Array (ขยายขนาดอัตโนมัติ)
  • เก็บ Objects (ไม่ใช่ primitives)
  • Random access ได้ O(1) ผ่าน index

สรุป

คุณสมบัติListArrayList
ประเภทInterfaceClass
Instantiateไม่ได้ได้
Implementation- Dynamic Array
ExtendsCollectionAbstractList
ใช้งานประกาศตัวแปร (List<T> list = new ArrayList<>())Implementation จริง

Best Practice

เขียนโค้ดตาม Interface: List list = new ArrayList<>(); เพื่อเปลี่ยน Implementation ได้ง่าย (เช่น LinkedList)