Clase de pila de Java
Clase de pila de Java
En este tutorial, aprenderemos sobre la clase Java Stack y sus métodos con la ayuda de ejemplos.
El marco de colecciones de Java tiene una clase llamada Stack que proporciona la funcionalidad de la estructura de datos de la pila.
El Stack la clase extiende el Vector clase.

Implementación de pila
En la pila, los elementos se almacenan y se accede a ellos en Último en entrar, primero en salir manera. 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, debemos importar el java.util.Stack paquete primero. Una vez que importamos el paquete, así es como podemos crear una pila en Java.
Stack<Type> stacks = new Stack<>();
Aquí, Type indica el tipo de pila. Por ejemplo,
// Create Integer type stack
Stack<Integer> stacks = new Stack<>();
// Create String type stack
Stack<String> stacks = new Stack<>();
Métodos de pila
Desde Stack extiende el Vector clase, hereda todos los métodos Vector . Para aprender sobre diferentes Vector métodos, visite Java Vector Class.
Además de estos métodos, el Stack class incluye 5 métodos más que la distinguen de Vector .
Método empujar()
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<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
}
}
Salida
Stack: [Dog, Horse, Cat]
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<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);
}
}
Salida
Initial Stack: [Dog, Horse, Cat] Removed Element: Cat
método peek()
El peek() El método devuelve un objeto desde la parte superior de la pila. Por ejemplo,
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);
}
}
Salida
Stack: [Dog, Horse, Cat] Element at top: Cat
Método de búsqueda()
Para buscar un elemento en la pila, usamos el search() método. Devuelve la posición del elemento desde la parte superior de la pila. Por ejemplo,
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);
}
}
Salida
Stack: [Dog, Horse, Cat] Position of Horse: 2
método vacío()
Para verificar 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<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);
}
}
Salida
Stack: [Dog, Horse, Cat] Is the stack empty? false
Usar ArrayDeque en lugar de Stack
El Stack La clase proporciona la implementación directa de la estructura de datos de la pila. Sin embargo, se recomienda no usarlo. En su lugar, utilice el ArrayDeque class (implementa el Deque interfaz) para implementar la estructura de datos de la pila en Java.
Para obtener más información, visite:
- Java ArrayDeque
- ¿Por qué usar Deque en lugar de Stack?
Java