Tóm Tắt
List trong Java
1. List
Một số phương thức thường được sử dụng của Collection
interface cũng có sẵn trong List
interface là:
add()
– thêm một phần tử vào listaddAll()
– thêm tất cả các phần tử của list này vào list khácget()
– giúp truy cập ngẫu nhiên các phần tử từ listiterator()
– trả về đối tượng iterator có thể được sử dụng để truy cập tuần tự các phần tử của listset()
– thay đổi các phần tử của listremove()
– xóa một phần tử khỏi listremoveAll()
– xóa tất cả các phần tử khỏi listclear()
– xóa tất cả các phần tử khỏi list (hiệu quả hơnremoveAll()
)size()
– trả về độ dài của listtoArray()
– chuyển đổi một list thành một arraycontains()
– trả về true nếu list chứa phần tử được chỉ định
2. ArrayList
Những điểm cần ghi nhớ về lớp ArrayList:
- ArrayList nội bộ sử dụng mảng động để lưu trữ các phần tử.
- Thao tác với ArrayList là chậm bởi vì nó sử dụng nội bộ mảng. Nếu bất kỳ phần tử nào được xoá khỏi mảng, tất cả các bit được chuyển trong bộ nhớ.
- Lớp ArrayList trong java chỉ có thể hoạt động như một list vì nó chỉ implements giao tiếp List.
- ArrayList là tốt hơn trong việc lưu trữ và truy cập dữ liệu.
3. LinkList
LinkedList trong java là một lớp kế thừa lớp AbstractSequentialList và triển khai của List, Queue Interface trong Collections Framework nên nó sẽ có một vài đặc điểm và phương thức tương đồng với List, Queue. Lớp LinkedList trong java sử dụng cấu trúc danh sách liên kết kép Doubly để lưu trữ các phần tử.
Những điểm cần ghi nhớ về lớp LinkedList:
- LinkedList nội bộ sử dụng danh sách liên kết doubly để lưu trữ các phần tử.
- Thao tác với LinkedList là nhanh hơn so với ArrayList bởi vì nó sử dụng danh sách liên kết doubly do đó không cần chuyển đổi bit nào trong bộ nhớ.
- Lớp LinkedList trong java có thể hoạt động như một list và queue(hàng đợi) hoặc stack (ngăn xếp) vì nó implements các giao tiếp List và Deque.
- LinkedList là tốt hơn trong việc thao tác dữ liệu.