77. Lớp LinkedList trong lập trình Java

Trong lập trình Java, LinkedList là một lớp cụ thể (class) nằm trong gói java.util. LinkedList là một lớp triển khai của giao diện List và cung cấp một danh sách liên kết đôi (double-linked list). Nó lưu trữ các phần tử dưới dạng các “nút” (node), mỗi nút chứa dữ liệu và hai con trỏ – một trỏ tới nút phía trước (next node) và một trỏ tới nút phía sau (previous node).

LinkedList có thể thay đổi kích thước linh hoạt vì nó không có hạn chế kích thước tĩnh như các mảng. Việc chèn và xóa phần tử ở đầu hoặc cuối danh sách được thực hiện nhanh chóng, nhưng việc truy cập ngẫu nhiên đến một phần tử trong danh sách sẽ chậm hơn so với mảng.

Dưới đây là một số phương thức quan trọng của lớp LinkedList:

  1. void addFirst(E element): Thêm một phần tử vào đầu của danh sách.
  2. void addLast(E element): Thêm một phần tử vào cuối của danh sách.
  3. E getFirst(): Trả về phần tử đầu tiên trong danh sách.
  4. E getLast(): Trả về phần tử cuối cùng trong danh sách.
  5. E removeFirst(): Xóa và trả về phần tử đầu tiên trong danh sách.
  6. E removeLast(): Xóa và trả về phần tử cuối cùng trong danh sách.
  7. boolean add(E element): Thêm một phần tử vào cuối danh sách.
  8. boolean remove(Object o): Xóa một phần tử khỏi danh sách (chỉ xóa phần tử đầu tiên nếu có nhiều phần tử trùng nhau).
  9. int size(): Trả về số lượng phần tử trong danh sách.
  10. boolean contains(Object o): Kiểm tra xem danh sách có chứa phần tử cụ thể hay không.
  11. void clear(): Xóa toàn bộ phần tử trong danh sách.
  12. Iterator<E> iterator(): Trả về một Iterator để duyệt qua các phần tử trong danh sách.

Dưới đây là ví dụ về cách sử dụng lớp LinkedList trong Java:

java
import java.util.LinkedList;

public class LinkedListExample {
    public static void main(String[] args) {
        LinkedList<String> names = new LinkedList<>();

        // Thêm phần tử vào danh sách
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        // Thêm phần tử vào đầu và cuối danh sách
        names.addFirst("David");
        names.addLast("Eve");

        // Truy cập phần tử đầu tiên và cuối cùng trong danh sách
        System.out.println("First element: " + names.getFirst()); // Output: First element: David
        System.out.println("Last element: " + names.getLast()); // Output: Last element: Eve

        // Xóa và truy cập phần tử đầu tiên và cuối cùng trong danh sách
        System.out.println("Removed first: " + names.removeFirst()); // Output: Removed first: David
        System.out.println("Removed last: " + names.removeLast()); // Output: Removed last: Eve

        // Duyệt qua danh sách và in ra các phần tử
        System.out.println("List elements:");
        for (String name : names) {
            System.out.println(name);
        }
        /* Output:
           Bob
           Charlie
        */

        // Kiểm tra danh sách có chứa phần tử cụ thể hay không
        System.out.println("Contains Bob: " + names.contains("Bob")); // Output: Contains Bob: true

        // Kích thước của danh sách
        System.out.println("Size of list: " + names.size()); // Output: Size of list: 2

        // Xóa toàn bộ phần tử trong danh sách
        names.clear();
        System.out.println("After clearing: " + names); // Output: After clearing: []
    }
}

Lớp LinkedList là một công cụ mạnh mẽ cho việc quản lý danh sách động trong Java, đặc biệt khi bạn cần thêm hoặc xóa các phần tử ở đầu hoặc cuối danh sách một cách hiệu quả.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top