ความแตกต่าง ระหว่าง nodelink กับ arraylist<class>

กระทู้คำถาม
ตามหัวข้ตามหัวข้อเลยครับ อยากทราบความแตกต่างของสองตัวนี้
//นี่เป็นกระทู้แรกของผมนะครับ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/util/ArrayList.html

ArrayList เป็น RandomAccess
RandomAccess  หมายถึง  เราเข้าถึง element ในเวลาคงที่เท่ากัน  ไม่ว่า element ไหน
หรือ constant-time access
หรือ O(1) access time

ในขณะที่ Linked List ไม่ใช่ RandomAccess ดังนั้นเวลาเข้าถึง element แต่ละตัวไม่คงที่เท่ากัน
แต่การร่น/แทรก/สลับ ทำได้เร็วกว่า RandomAccess เพราะไม่มี memory-move overhead

นั่นคือถ้างานใด ๆ ไม่ได้อ่านค่าจาก container เยอะ  แต่ร่น/แทรก/สลับเยอะ  ต้องยกให้ Linked List เค้าไป

- ถ้าจะให้เห็นภาพต้องอธิบายด้วยแผนภาพ memory address
- ถ้าจะให้เห็น  "ของจริง"  อธิบายด้วย machine code ใน godbolt.org
แสดงความคิดเห็น
อ่านกระทู้อื่นที่พูดคุยเกี่ยวกับ  การพัฒนาซอฟต์แวร์
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่