66.Lớp Stack trong lập trình java

Trong lập trình java, lớp Stack là một lớp trong gói java.util trong Java, và nó được sử dụng để triển khai cấu trúc dữ liệu ngăn xếp (stack). Stack là một cấu trúc dữ liệu LIFO (Last-In-First-Out), có nghĩa là phần tử cuối cùng được thêm vào là phần tử đầu tiên được lấy ra.

Lớp Stack mở rộng từ lớp Vector, nên nó kế thừa các phương thức của Vector, nhưng chỉ nên sử dụng các phương thức liên quan đến cấu trúc dữ liệu ngăn xếp để duy trì tính chất LIFO.

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

  1. void push(E item): Thêm một phần tử vào đỉnh ngăn xếp.
  2. E pop(): Lấy phần tử ở đỉnh ngăn xếp ra khỏi ngăn xếp và trả về phần tử đó.
  3. E peek(): Lấy phần tử ở đỉnh ngăn xếp ra khỏi ngăn xếp nhưng không xóa nó khỏi ngăn xếp và trả về phần tử đó.
  4. boolean isEmpty(): Kiểm tra xem ngăn xếp có rỗng không.
  5. int size(): Trả về số lượng phần tử trong ngăn xếp.

Dưới đây là một ví dụ về cách sử dụng lớp Stack:

java
import java.util.Stack;

public class StackExample {
    public static void main(String[] args) {
        Stack<String> stack = new Stack<>();

        // Thêm phần tử vào ngăn xếp
        stack.push("Java");
        stack.push("Python");
        stack.push("C++");

        // Lấy phần tử ở đỉnh ngăn xếp
        System.out.println("Top element: " + stack.peek()); // Output: Top element: C++

        // Lấy phần tử ra khỏi ngăn xếp
        String topElement = stack.pop();
        System.out.println("Removed element: " + topElement); // Output: Removed element: C++

        // Kích thước của ngăn xếp
        System.out.println("Size of stack: " + stack.size()); // Output: Size of stack: 2

        // Kiểm tra ngăn xếp có rỗng không
        System.out.println("Is stack empty: " + stack.isEmpty()); // Output: Is stack empty: false
    }
}

Lớp Stack hữu ích khi bạn cần triển khai một cấu trúc dữ liệu ngăn xếp trong ứng dụng của mình, nhưng như đã đề cập trước đó, trong các ứng dụng hiện đại, thường nên sử dụng cấu trúc dữ liệu LinkedList hoặc ArrayDeque thay thế, vì chúng cung cấp hiệu suất tốt hơn so với Stack.

Leave a Comment

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

Scroll to Top