English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderemos con ejemplos la clase Stack de Java y sus métodos.
El marco de colecciones de Java tiene una clase llamada Stack, que proporciona las funciones de la estructura de datos de pila.
Esta clase Stack hereda de la clase Vector.
En la pila, los elementos seúltimo en entrar, primero en salirmanera de almacenar y acceder. Es decir, los elementos se agregan a la parte superior de la pila y se eliminan de la parte superior de la pila.
Para crear una pila, primero debemos importar el paquete java.util.Stack. Después de importar el paquete, podemos usar Java para crear una pila.
Stack<Type> stacks = new Stack<>();
Aquí, Type indica el tipo de la pila. Por ejemplo,
//Creación de una pila de tipo entero Stack<Integer> stacks = new Stack<>(); //Creación de una pila de tipo de cadena Stack<String> stacks = new Stack<>();
Dado que Stack hereda de la clase Vector, hereda todos los métodos de Vector. Para obtener información sobre los métodos diferentes de Vector, visiteClase Vector de Java.
Además de estos métodos, la clase Stack incluye5métodos que la distinguen de Vector.
Para agregar elementos a la parte superior de la pila, utilizamos el método push(). Por ejemplo,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //将元素添加到Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); } }
输出结果
Stack: [Dog, Horse, Cat]
Para eliminar elementos desde la parte superior de la pila, utilizamos el método pop(). Por ejemplo,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //Para agregar elementos a la Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Pila inicial: "} + animals); //Eliminación de elementos de la pila, el principio de último en entrar primero en salir String element = animals.pop(); System.out.println("Eliminación de elementos: "} + element); } }
输出结果
Pila inicial: [Dog, Horse, Cat] Eliminación de elementos: Cat
El método peek() 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<>(); //将元素添加到Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //Acceso al elemento desde la parte superior, el principio de último en entrar primero en salir String element = animals.peek(); System.out.println("El elemento superior: "} + element); } }
输出结果
Stack: [Dog, Horse, Cat] El elemento superior: Cat
Para buscar elementos en la pila, utilizamos el método search(). 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<>(); //将元素添加到Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //Búsqueda de elementos int position = animals.search("Horse"); System.out.println("La posición del elemento Horse: "} + position); } }
输出结果
Stack: [Dog, Horse, Cat] La posición del elemento Horse: 2
Para verificar si la pila está vacía, utilizamos el método empty(). Por ejemplo,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //将元素添加到Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //检查堆栈是否为空 boolean result = animals.empty(); System.out.println("堆栈是否为空? " + result); } }
输出结果
Stack: [Dog, Horse, Cat] 堆栈是否为空? false
此Stack类提供直接执行堆栈的数据结构。但是,建议不要使用它。而是使用ArrayDeque类(实现Deque接口)在Java中实现堆栈数据结构。
要了解更多信息,请访问:ArrayDeque de Java