Lớp LinkedList trong Java
kế thừa lớp AbstractSequentialList và triển khai List Interface. Nó cung cấp một cấu trúc dữ liệu linked-list (dạng danh sách được liên kết). Để hiểu sâu hơn các khái niệm được trình bày trong chương này, mời bạn tham khảo loạt bài: . Lớp LinkedList hỗ trợ hai constructor. ...
kế thừa lớp AbstractSequentialList và triển khai List Interface. Nó cung cấp một cấu trúc dữ liệu linked-list (dạng danh sách được liên kết).
Để hiểu sâu hơn các khái niệm được trình bày trong chương này, mời bạn tham khảo loạt bài: .
Lớp LinkedList hỗ trợ hai constructor. Constructor đầu tiên xây dựng một linked-list trống:
LinkedList( )
Constructor sau xây dựng một linked-list mà được khởi tạo với các phần tử trong collection c:
LinkedList(Collection c)
Ngoài các phương thức được kế thừa từ các lớp cha, lớp LinkedList trong Java định nghĩa các phương thức sau:
STT | Phương thức và Miêu tả |
---|---|
1 | void add(int index, Object element)
Chèn element đã xác định tại index đã cho. Ném một IndexOutOfBoundsException nếu index đã cho là ở bên ngoài dãy (index < 0 || index > size()) |
2 | boolean add(Object o)
Phụ thêm phần tử đã cho tới cuối của List này |
3 | boolean addAll(Collection c)
Phụ thêm tất cả phần tử trong collection đã cho tới cuối của list này, theo thứ tự mà chúng được trả về bởi Iterator của collection đã cho. Ném một NullPointerException nếu collection đã cho là null |
4 | boolean addAll(int index, Collection c)
Chèn tất cả phần tử trong collection đã cho vào trong List này, bắt đầu từ vị trí đã cho. Ném NullPointerException nếu collection đã cho là null |
5 | void addFirst(Object o)
Chèn phần tử đã cho vào phần đầu của list này |
6 | void addLast(Object o)
Phụ thêm phần tử đã cho vào phần cuối của list này |
7 | void clear()
Gỡ bỏ tất cả phần tử từ list này |
8 | Object clone()
Trả về một shallow copy của LinkedList này |
9 | boolean contains(Object o)
Trả về true nếu list này chứa phần tử đã cho. Chính thức hơn, trả về true nếu và chỉ nếu list này chứa ít nhất một phần tử e để mà (o==null ? e==null : o.equals(e)) |
10 | Object get(int index)
Trả về phần tử tại vị trí đã cho. Ném IndexOutOfBoundsException nếu index ở bên ngoài dãy (index < 0 || index >= size()) |
11 | Object getFirst()
Trả về phần tử đầu tiên trong list này. Ném NoSuchElementException nếu list này là trống |
12 | Object getLast()
Trả về phần tử cuối trong list này. Ném NoSuchElementException nếu list này là trống |
13 | int indexOf(Object o)
Trả về index trong list này cho sự xuất hiện đầu tiên của phần tử đã cho, hoặc -1 nếu List này không chứa phần tử này |
14 | int lastIndexOf(Object o)
Trả về index trong list này cho sự xuất hiện cuối của phần tử đã cho, hoặc -1 nếu List này không chứa phần tử này |
15 | ListIterator listIterator(int index)
Trả về một list-iterator của phần tử trong list này (trong dãy chính xác), bắt đầu từ vị trí đã cho trong list. Ném IndexOutOfBoundsException nếu index đã cho ở bên ngoài dãy (index < 0 || index >= size()) |
16 | Object remove(int index)
Gỡ bỏ phần tử tại vị trí đã cho. Ném NoSuchElementException nếu list này là trống |
17 | boolean remove(Object o)
Gỡ bỏ sự xuất hiện đầu tiên của phần tử đã cho. Ném NoSuchElementException nếu list này trống. Ném IndexOutOfBoundsException nếu index ở bên ngoài dãy (index < 0 || index >= size()) |
18 | Object removeFirst()
Gỡ bỏ và trả về phần tử đầu tiên từ list này. Ném NoSuchElementException nếu list là trống |
19 | Object removeLast()
Gỡ bỏ và trả về phần tử cuối từ list này. Ném NoSuchElementException nếu list là trống |
20 | Object set(int index, Object element)
Thay thế phần tử tại vị trí đã cho trong list này với phần tử đã cho. Ném IndexOutOfBoundsException nếu index đã cho ở ngoài dãy (index < 0 || index >= size()) |
21 | int size()
Trả về số phần tử trong list này |
22 | Object[] toArray()
Trả về một mảng chứa tất cả phần tử trong list này trong đúng thứ tự. Ném NullPointerException nếu mảng đã xác định là null |
23 | Object[] toArray(Object[] a)
Trả về một mảng chứa tất cả phần tử trong list này trong đúng thứ tự; kiểu runtime của mảng trả về là như của mảng đã xác định |
Ví dụ
Chương trình sau minh họa các phương thức được hỗ trợ bởi lớp LinkedList trong Java:
import java.util.*; public class LinkedListDemo { public static void main(String args[]) { // tao mot linked list LinkedList ll = new LinkedList(); // them cac phan tu toi linked list ll.add("F"); ll.add("B"); ll.add("D"); ll.add("E"); ll.add("C"); ll.addLast("Z"); ll.addFirst("A"); ll.add(1, "A2"); System.out.println("Noi dung ban dau cua LinkedList: " + ll); // xoa cac phan tu tu linked list ll.remove("F"); ll.remove(2); System.out.println("Noi dung cua LinkedList sau khi xoa: " + ll); // xoa cac phan tu dau tien va cuoi cung ll.removeFirst(); ll.removeLast(); System.out.println("LinkedList sau khi xoa phan tu dau tien va cuoi cung: " + ll); // lay va thiet lap mot gia tri Object val = ll.get(2); ll.set(2, (String) val + " Dathaydoi"); System.out.println("LinkedList sau khi thay doi: " + ll); } }
Nó sẽ cho kết quả sau:
Noi dung ban dau cua LinkedList: [A, A2, F, B, D, E, C, Z] Noi dung cua LinkedList sau khi xoa: [A, A2, D, E, C, Z] LinkedList sau khi xoa phan tu dau tien va cuoi cung: [A2, D, E, C] LinkedList sau khi thay doi: [A2, D, E Dathaydoi, C]
Mọi người cho thể tham gia khóa học thứ 6 của vietjackteam (đang tuyển sinh) vào đầu tháng 03/2018 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : .Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Số lượng các công việc Java hoặc .NET luôn gấp ít nhất 3 lần Android hoặc iOS trên thị trường tuyển dụng.
Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Trong tháng 4/2018, VietJack khuyến mại giá SỐC chỉ còn 150k cho khóa học, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển khoản hoặc thẻ điện thoại, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất cứ lúc nào, và xem mãi mãi. Thông tin khóa học tại . Khóa học có rating 4.7/5 trên udemy từ nhận xét của các bạn học viên.
Mọi người có thể xem demo nội dung khóa học tại địa chỉ
Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com
Follow fanpage của team hoặc facebook cá nhân Nguyễn Thanh Tuyền để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Bài học Java phổ biến tại vietjack.com: