Java Program to Implement stack data structure

To understand this example, you should have the knowledge of the following Java programming topics:

Example 1: Java program to implement Stack

// Stack implementation in Java

class Stack {

  // store elements of stack
  private int arr[];
  // represent top of stack
  private int top;
  // total capacity of the stack
  private int capacity;

  // Creating a stack
  Stack(int size) {
    // initialize the array
    // initialize the stack variables
    arr = new int[size];
    capacity = size;
    top = -1;

  // push elements to the top of stack
  public void push(int x) {
    if (isFull()) {
      System.out.println("Stack OverFlow");

      // terminates the program

    // insert element on top of stack
    System.out.println("Inserting " + x);
    arr[++top] = x;

  // pop elements from top of stack
  public int pop() {

    // if stack is empty
    // no element to pop
    if (isEmpty()) {
      System.out.println("STACK EMPTY");
      // terminates the program

    // pop element from top of stack
    return arr[top--];

  // return size of the stack
  public int getSize() {
    return top + 1;

  // check if the stack is empty
  public Boolean isEmpty() {
    return top == -1;

  // check if the stack is full
  public Boolean isFull() {
    return top == capacity - 1;

  // display elements of stack
  public void printStack() {
    for (int i = 0; i <= top; i++) {
      System.out.print(arr[i] + ", ");

  public static void main(String[] args) {
    Stack stack = new Stack(5);


    System.out.print("Stack: ");

    // remove element from stack
    System.out.println("\nAfter popping out");



Inserting 1
Inserting 2
Inserting 3
Stack: 1, 2, 3,  
After popping out
1, 2, 

In the above example, we have implemented the stack data structure in Java.

To learn more, visit Stack Data Structure.

Example 2: Implement stack using Stack class

Java provides a built Stack class that can be used to implement a stack.

import java.util.Stack;

class Main {
  public static void main(String[] args) {

    // create an object of Stack class
    Stack<String> animals= new Stack<>();

    // push elements to top of stack
    System.out.println("Stack: " + animals);

    // pop element from top of stack
    System.out.println("Stack after pop: " + animals);


Stack: [Dog, Horse, Cat]
Stack after pop: [Dog, Horse]

In the above example, we have used the Stack class to implement the stack in Java. Here,

  • animals.push() - insert elements to top of the stack
  • animals.pop() - remove element from the top of the stack

Notice, we have used the angle brackets <String> while creating the stack. It represents that the stack is of the generic type.

Did you find this article helpful?