Clase de pila Java

En este tutorial, aprenderemos sobre la clase Java Stack y sus métodos con la ayuda de ejemplos.

El marco de las colecciones de Java tiene una clase denominada Stackque proporciona la funcionalidad de la estructura de datos de la pila.

La Stackclase extiende la Vectorclase.

Implementación de pila

En la pila, los elementos se almacenan y se accede a ellos de la manera Último en entrar, primero en salir . Es decir, los elementos se agregan a la parte superior de la pila y se eliminan de la parte superior de la pila.

Crear una pila

Para crear una pila, java.util.Stackprimero debemos importar el paquete. Una vez que importamos el paquete, así es como podemos crear una pila en Java.

 Stack stacks = new Stack(); 

Aquí, Typeindica el tipo de pila. Por ejemplo,

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

Métodos de pila

Dado que Stackextiende la Vectorclase, hereda todos los métodos Vector. Para obtener información sobre los diferentes Vectormétodos, visite Java Vector Class.

Además de estos métodos, la Stackclase incluye 5 métodos más que la distinguen Vector.

Método push ()

Para agregar un elemento a la parte superior de la pila, usamos el push()método. Por ejemplo,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); ) ) 

Salida

 Pila: (perro, caballo, gato) 

Método pop ()

Para eliminar un elemento de la parte superior de la pila, usamos el pop()método. Por ejemplo,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack 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); ) ) 

Salida

 Pila inicial: (perro, caballo, gato) Elemento eliminado: gato 

método peek ()

El peek()método devuelve un objeto de la parte superior de la pila. Por ejemplo,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack 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); ) ) 

Salida

 Pila: (perro, caballo, gato) Elemento en la parte superior: gato 

Método de búsqueda ()

Para buscar un elemento en la pila, usamos el search()método. Devuelve la posición del elemento de la parte superior de la pila. Por ejemplo,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack 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); ) ) 

Salida

 Stack: (perro, caballo, gato) Posición del caballo: 2 

método vacío ()

Para comprobar si una pila está vacía o no, usamos el empty()método. Por ejemplo,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack 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); ) ) 

Salida

Pila: (Perro, Caballo, Gato) ¿Está vacía la pila? falso

Utilice ArrayDeque en lugar de Stack

La Stackclase proporciona la implementación directa de la estructura de datos de la pila. Sin embargo, se recomienda no usarlo. En su lugar, use la ArrayDequeclase (implementa la Dequeinterfaz) para implementar la estructura de datos de la pila en Java.

Para obtener más información, visite:

  • Java ArrayDeque
  • ¿Por qué usar Deque sobre Stack?

Articulos interesantes...