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

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

ArrayList และ LinkedList ทั้งคู่ implement List interface ทั้งคู่ non-synchronized แต่ต่างกันดังนี้:

ลำดับ หัวข้อ ArrayList LinkedList
1 Internal Implementation ใช้ Dynamic Array เก็บข้อมูล ใช้ Doubly Linked List เก็บข้อมูล
2 Manipulation (เพิ่ม/ลบ) ช้ากว่า (ต้อง shift array) เร็วกว่า (node-based ไม่ต้อง shift)
3 Implementation implements List เท่านั้น implements List และ Queue (ใช้เป็น queue ได้)
4 Access (Random Access) เร็วกว่า (index-based O(1)) ช้ากว่า (ต้อง traverse O(n))

ตัวอย่าง

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class JavaTester {
    public static void main(String args[]) {
        List list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        
        List list1 = new LinkedList<>();
        list1.add("A");
        list1.add("B");
        list1.add("C");
        list1.add("D");
        
        System.out.println(list);
        System.out.println(list1);
    }
}

ผลลัพธ์

[A, B, C, D]
[A, B, C, D]