Lớp Stack là một lớp phụ của lớp Vector trong Java mà triển khai một last-in-first-out (LIFO) stack. Bạn có thể nghĩ về Stack như là một ngăn xếp thẳng đứng.
Stack chỉ định nghĩa constructor mặc định, mà tạo một stack trống.
Stack( )
Ngoài những phương thức được kế thừa từ lớp Vector cha, lớp Stack định nghĩa các phương thức sau:
STT | Phương thức và Miêu tả |
---|---|
1 | boolean empty()
Kiểm tra nếu Stack này là trống. Trả về true nếu nó trống và false nếu stack chứa các phần tử |
2 | Object peek( )
Trả về phần tử trên cùng của Stack, nhưng không gỡ bỏ nó |
3 | Object pop( )
Trả về phần tử trên cùng của Stack, gỡ bỏ nó |
4 | Object push(Object element)
Đẩy phần tử lên trên cùng của Stack. Cũng trả về phần tử đó |
5 | int search(Object element)
Tìm kiếm phần tử trong Stack. Nếu tìm thấy, offset của nó từ trên cùng của Stack được trả về. Nếu không, nó trả về -1 |
Ví dụ
Chương trình sau minh họa một số phương thức được hỗ trợ bởi lớp Stack trong Java:
import java.util.*;
public class StackDemo {
static void showpush(Stack st, int a) {
st.push(new Integer(a));
System.out.println("push(" + a + ")");
System.out.println("stack: " + st);
}
static void showpop(Stack st) {
System.out.print("pop -> ");
Integer a = (Integer) st.pop();
System.out.println(a);
System.out.println("stack: " + st);
}
public static void main(String args[]) {
Stack st = new Stack();
System.out.println("stack: " + st);
showpush(st, 42);
showpush(st, 66);
showpush(st, 99);
showpop(st);
showpop(st);
showpop(st);
try {
showpop(st);
} catch (EmptyStackException e) {
System.out.println("empty stack");
}
}
}
Nó sẽ cho kết quả sau:
stack: [ ]
push(42)
stack: [42]
push(66)
stack: [42, 66]
push(99)
stack: [42, 66, 99]
pop -> 99
stack: [42, 66]
pop -> 66
stack: [42]
pop -> 42
stack: [ ]
pop -> empty stack
Hoclaptrinh.vn © 2017
From Coder With
Unpublished comment
Viết câu trả lời