Stack là một data structure với LIFO (Last In First Out), phần tử nào vào sau thì sẽ được lấy ra trước. Trong Java thì Stack là một generic class, hiện thực stack data structure đó các bạn. Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu thêm về Stack trong Java các bạn nhé!
Điều đầu tiên các bạn cần phải biết là class Stack extends từ class Vector. Nó là thread-safe, nên việc thao tác với các phần tử trong Stack sẽ chậm hơn so với ArrayDeque.
Các bạn có thể khởi tạo mới đối tượng Stack như sau:
|
1 |
Stack<String> stack = new Stack<>(); |
Các bạn có thể thêm mới phần tử sử dụng phương thức push(), remove và lấy phần tử ra sử dụng phương thức pop(), lấy phần tử mà không remove nó sử dụng phương thức peek().
Ví dụ như sau:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package com.huongdanjava.java; import java.util.Stack; public class Application { public static void main(String[] args) { Stack<String> stack = new Stack<>(); stack.push("Khanh"); stack.push("Huong Dan Java"); stack.stream().forEach(System.out::println); System.out.println("Pop: " + stack.pop()); stack.stream().forEach(System.out::println); System.out.println("Peek: " + stack.peek()); stack.stream().forEach(System.out::println); } } |
Trong ví dụ trên thì mình thêm 2 phần tử, sau đó thì lấy ra và remove một phần tử sử dụng phương thức pop(), cuối cùng thì sử dụng phương thức peek() để lấy ra một phần tử mà không remove nó. Các bạn sẽ thấy Stack của mình còn một phần tử như sau:

Các bạn cũng có thể sử dụng phương thức search() để tìm kiếm phần tử trong Stack hoặc phương thức size() để kiểm tra kích thước của nó các bạn nhé!
Các bạn có thể xem thêm video ở đây
