Lớp ngăn xếp Java

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về lớp Java Stack và các phương thức của nó với sự trợ giúp của các ví dụ.

Khung tập hợp Java có một lớp được đặt tên Stackcung cấp chức năng của cấu trúc dữ liệu ngăn xếp.

Các Stacklớp mở rộng Vectorlớp.

Thực hiện ngăn xếp

Trong ngăn xếp, các phần tử được lưu trữ và truy cập theo cách Cuối cùng Trong Đầu ra . Nghĩa là, các phần tử được thêm vào đầu ngăn xếp và bị xóa khỏi đầu ngăn xếp.

Tạo một ngăn xếp

Để tạo một ngăn xếp, java.util.Stacktrước tiên chúng ta phải nhập gói. Sau khi chúng tôi nhập gói, đây là cách chúng tôi có thể tạo một ngăn xếp trong Java.

Stack<Type> stacks = new Stack<>();

Ở đây, Typecho biết loại ngăn xếp. Ví dụ,

// Create Integer type stack
Stack<Integer> stacks = new Stack<>();

// Create String type stack
Stack<String> stacks = new Stack<>();

Phương pháp ngăn xếp

Kể từ khi Stackmở rộng Vectorlớp, nó kế thừa tất cả các phương thức Vector. Để tìm hiểu về các Vectorphương pháp khác nhau , hãy truy cập Lớp Java Vector .

Bên cạnh những phương thức này, Stacklớp còn bao gồm 5 phương thức khác phân biệt nó với Vector.

phương thức push ()

Để thêm một phần tử vào đầu ngăn xếp, chúng tôi sử dụng push()phương pháp. Ví dụ,

import java.util.Stack;

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

        // Add elements to Stack
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");

        System.out.println("Stack: " + animals);
    }
}

Đầu ra

Stack: [Dog, Horse, Cat]

phương thức pop ()

Để xóa một phần tử khỏi đầu ngăn xếp, chúng tôi sử dụng pop()phương pháp. Ví dụ,

import java.util.Stack;

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

        // Add elements to Stack
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Initial Stack: " + animals);

        // Remove element stacks
        String element = animals.pop();
        System.out.println("Removed Element: " + element);
    }
}

Đầu ra

Initial Stack: [Dog, Horse, Cat]
Removed Element: Cat

Phương thức peek ()

Các peek()phương thức trả về một đối tượng từ phía trên cùng của ngăn xếp. Ví dụ,

import java.util.Stack;

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

        // Add elements to Stack
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Stack: " + animals);

        // Access element from the top
        String element = animals.peek();
        System.out.println("Element at top: " + element);

    }
}

Đầu ra

Stack: [Dog, Horse, Cat]
Element at top: Cat

Để tìm kiếm một phần tử trong ngăn xếp, chúng tôi sử dụng search()phương pháp. Nó trả về vị trí của phần tử từ trên cùng của ngăn xếp. Ví dụ,

import java.util.Stack;

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

        // Add elements to Stack
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Stack: " + animals);

        // Search an element
        int position = animals.search("Horse");
        System.out.println("Position of Horse: " + position);
    }
}

Đầu ra

Stack: [Dog, Horse, Cat]
Position of Horse: 2

Phương thức rỗng ()

Để kiểm tra xem một ngăn xếp có trống hay không, chúng ta sử dụng empty()phương pháp này. Ví dụ,

import java.util.Stack;

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

        // Add elements to Stack
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Stack: " + animals);

        // Check if stack is empty
        boolean result = animals.empty();
        System.out.println("Is the stack empty? " + result);
    }
}

Đầu ra

Stack: [Dog, Horse, Cat]
Is the stack empty? false

Sử dụng ArrayDeque thay vì Stack

Các Stacklớp học cung cấp cho việc thực hiện trực tiếp của cấu trúc ngăn xếp dữ liệu. Tuy nhiên, khuyến cáo không nên sử dụng. Thay vào đó, hãy sử dụng ArrayDequelớp (triển khai Dequegiao diện) để triển khai cấu trúc dữ liệu ngăn xếp trong Java.

Để tìm hiểu thêm, hãy truy cập:









Gõ tìm kiếm nhanh...