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 Stack
cung cấp chức năng của cấu trúc dữ liệu ngăn xếp.
Các Stack
lớp mở rộng Vector
lớ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.Stack
trướ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, Type
cho 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 Stack
mở rộng Vector
lớp, nó kế thừa tất cả các phương thức Vector
. Để tìm hiểu về các Vector
phươ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, Stack
lớ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
phương thức search ()
Để 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 Stack
lớ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 ArrayDeque
lớp (triển khai Deque
giao 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:
- Java ArrayDeque
- Why use Deque over Stack?