So Sánh ArrayList Và LinkedList Trong Java - GP Coder (Lập Trình Java)
Có thể bạn quan tâm
Trong các bài viết trước, tôi đã giới thiệu với các bạn ArrayList và LinkedList. Trong bài này, tôi sẽ so sánh sự giống nhau, khác nhau của 2 collection này.
Nội dung
- 1 Giống nhau giữa ArrayList và LinkedList
- 2 Khác nhau giữa ArrayList và LinkedList
Giống nhau giữa ArrayList và LinkedList
Cả hai lớp ArrayList và LinkedList đều được implements từ List Interface và duy trì thứ tự của phần tử được thêm vào. Cả hai lớp này đều là lớp không đồng bộ (non-synchronized).
Khác nhau giữa ArrayList và LinkedList
ArrayList | LinkedList | |
Cấu trúc dữ liệu (Structure) | ArrayList sử dụng mảng động để lưu trữ các phần tử. | LinkedList sử dụng danh sách liên kết (Doubly Linked List) để lưu trữ các phần tử. |
ArrayList là một cấu trúc dữ liệu dựa trên chỉ mục (index), trong đó mỗi phần tử (element) được liên kết với một chỉ mục. | Các phần tử trong LinkedList được gọi là node, mỗi node cần lưu trữ 3 thông tin: tham chiếu phần tử trước nó, giá trị của phần tử và một tham chiếu tới phần tử kế tiếp. | |
Thao tác thêm và xóa (Insertion And Removal) | Thao tác thêm và xóa phần tử với ArrayList là chậm bởi vì nó sử dụng nội bộ mảng. Bởi vì sau khi thêm hoặc xóa các phần tử cần sắp xếp lại. | Thao tác thêm và xóa phần tử với LinkedList nhanh hơn ArrayList. Bởi vì nó không cần sắp xếp lại các phần tử sau khi thêm hoặc xóa. Nó chỉ cần cập nhật lại tham chiếu tới phần tử phía trước và sau nó. |
Độ phức tạp: O(n). | Độ phức tạp: O(1). | |
Thao tác tìm kiếm hoặc truy xuất phần tử (Retrieval) | Truy xuất phần tử trong ArrayList nhanh hơn LinkedList. Bởi vì các phần tử trong ArrayList được lưu trữ dựa trên chỉ mục (index). | Thao tác truy xuất phần tử trong LinkedList chậm hơn nhiều so với ArrayList. Bởi vì, nó phải duyệt qua lần lượt các phần tử từ đầu tiên cho đến cuối cùng. |
Độ phức tạp: O(1). | Độ phức tạp: O(n). | |
Truy xuất ngẫu nhiên (Random Access) | ArrayList có thể truy xuất ngẫu nhiên phần tử. | LinkedList không thể truy xuất ngẫu nhiên. Nó phải duyệt qua tất cả các phần tử từ đầu tiên đến phần tử cuối cùng để tìm phần tử. |
Trường hợp sử dụng (Usage) | ArrayList chỉ có thể hoạt động như một list vì nó chỉ implements giao tiếp List. | LinkedList có thể hoạt động như một ArrayList, stack (hàng đợi), queue (hàng đợi), Singly Linked List and Doubly Linked List vì nó implements các giao tiếp List và Deque. |
Sử dụng bộ nhớ | ArrayList yêu cầu ít bộ nhớ hơn so với LinkedList. Bởi vì ArrayList chỉ lưu trữ dữ liệu (data) của nó và chỉ mục (index). | LinkedList yêu cầu nhiều bộ nhớ hơn so với ArrayList. Bởi vì LinkedList lưu giữ thông tin của nó và tham chiếu tới phần tử trước và sau nó. |
Khi nào sử dụng? | ArrayList tốt hơn trong việc lưu trữ và truy xuất dữ liệu (get). | LinkedList tốt hơn trong việc thao tác dữ liệu (thêm/ xóa). |
Chuyên mục: Collection Được gắn thẻ: Collection
LinkedList trong javaList Interface trong JavaCó thể bạn muốn xem:
- Collection trong java (11/11/2017)
- Map Interface trong java (17/11/2017)
- HashMap trong Java hoạt động như thế nào? (17/11/2017)
- So sánh Array và ArrayList trong Java (12/11/2017)
- Loại bỏ các phần tử trùng trong một ArrayList như thế nào trong Java 8? (24/02/2019)
Bình luận
bình luận
Từ khóa » Sự Khác Nhau Giữa List Và Arraylist Java
-
Sự Khác Nhau Giữa Biến Tham Chiếu Kiểu List Và ArrayList Trong Java ...
-
Sự Khác Biệt Giữa Danh Sách Và ArrayList Trong Java
-
List Và Arraylist Trong Java
-
Sự Khác Nhau Giữa Array Với ArrayList - VietTuts
-
Hỏi Về Sự Khác Nhau Giữa ArrayList Và List? - Programming
-
ArrayList Và List Cái Nào Nhanh Hơn? - Programming - Dạy Nhau Học
-
Sự Khác Biệt Giữa Array Và ArrayList Trong Java
-
Sự Khác Nhau Giữa Array Với ArrayList 2022 - Công Nghệ
-
So Sánh Array Và ArrayList Trong Java - GP Coder (Lập Trình Java)
-
Tất Tần Tật Về List Trong Java - NIIT - ICT Hà Nội
-
Sự Khác Nhau Giữa Vector Trong Java Và ArrayList - Hoclaptrinh
-
Phân Biệt Sự Khác Nhau Giữa Array Và ArrayList Trong Lập Trình Java
-
Phân Biệt ArrayList Và LinkedList - CodeGym Chia Sẻ
-
Sự Khác Biệt Giữa Array Và ArrayList (Phần Mềm) - Sawakinome
-
Bài 19: Phân Biệt Array Và ArrayList Trong Java - YouTube
-
So Sánh ArrayList Và LinkedList - KungFu Tech
-
Sự Khác Biệt Giữa Array Và ArrayList Sự Khác Nhau Giữa
-
Tổng Hợp Câu Hỏi Phỏng Vấn Java (Phần 5) - CodeGym
-
ArrayList So Với LinkedList - TutorialCup