Utilización de la clase Stack. Estructura de datos tipo pila.
La clase Java Stackjava.util.Stack , es una estructura de datos de pila clásica. Puede insertar elementos en la parte superior de una pila de Java y volver a abrirlos, lo que significa leer y eliminar los elementos de la parte superior de la pila.
Un Stack posee varios método propios, que le permiten gestionar los elementos agregados de una forma diferente a una interfaz List.
Como ejemplo utilizaremos una clase “Usuario”, de la cual crearemos instancias que se irán agregando a la cola. Necesitaremos una clase main para crear los métodos y ejecutarlos.
Clase Usuario./** * * @author carlos */ public class Usuario { //Atributos private int id; private String nombre; private String password; //Constructores public Usuario() { } public Usuario(int id, String nombre, String password) { this.id = id; this.nombre = nombre; this.password = password; } //Getters y Setters public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
Clase main “StackApp” que será el ejecutable.
import java.util.Stack; /** * * @author carlos */ public class StackApp { /** * @param args the command line arguments */ public static void main(String[] args) { //Rellenando Pila. Stack<Usuario> usuarios = usuarios(); //Método propio de una pila, obtener el último elemento agregado System.out.println("Último elemento: " + usuarios.peek().getNombre()); //Llamando al método para imprimir print(usuarios); //Llamando al método para vaciar. vaciar(usuarios); } //Utilizamos un método para cargar los elementos en la pila //El método retorna una pila de "Usuarios" public static Stack<Usuario> usuarios(){ //Se instancia utilizando new Stack<>() Stack<Usuario> usuarios = new Stack<>(); //Se agregan registros de usuario a la pila. //Hay diferentes formas de agregar elementos a la pila //Utilizando add usuarios.add(new Usuario(1, "Jorge", "jorge2019")); //Utilizando push, método propia de una pila usuarios.push(new Usuario(2, "Anibal", "pass123")); usuarios.push(new Usuario(3, "Miguel", "mg2020")); usuarios.push(new Usuario(4, "Ariel", "arl2220")); usuarios.push(new Usuario(5, "Sonia", "sn1980")); //Retornamos una pila de usuario. return usuarios; } public static void vaciar(Stack<Usuario> usuarios){ System.out.println("Vaciando pila"); System.out.println("_____________"); //Se utiliza el método pop() para vaciar la pila //Se recorre la pila hasta que quede vacío while(!usuarios.isEmpty()){ usuarios.pop(); } System.out.println("Pila vacía."); } //Método para imprimir public static void print(Stack<Usuario> usuarios){ System.out.println("Imprimiendo datos de Usuarios"); System.out.println("_____________________________"); //Utilizamos foreach para acceder a cada registro usuario y mostrarlo for(Usuario u: usuarios){ System.out.println("Id: " + u.getId()); System.out.println("Nombre: " + u.getNombre()); System.out.println("Password: " + u.getPassword()); System.out.println("_________________________________"); } } }Resultado del ejemplo.
No hay comentarios :
Publicar un comentario