English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones en Java

Java lista (lista)

Java cola (cola)

Java conjuntos Map

Java conjuntos Set

Java entrada/salida (I/O)

Lector de Java/Writer

Temas de Java

Pila (Stack) de Java

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.

la implementación de la pila

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.

Crear una 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<>();

Métodos de la pila

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.

Método push()

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]

Método pop()

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

Método peek()

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

Método empty()

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

使用ArrayDeque代替Stack

此Stack类提供直接执行堆栈的数据结构。但是,建议不要使用它。而是使用ArrayDeque类(实现Deque接口)在Java中实现堆栈数据结构。

要了解更多信息,请访问:ArrayDeque de Java