820

Capítulo 19 Colecciones

19.7 La clase 

Stack

 del paquete 

java.util

En el capítulo 17, Estructuras de datos, aprendimos a construir estructuras de datos fundamentales, incluyendo 
listas enlazadas, pilas, colas y árboles. En un mundo de reutilización de software, en vez de construir las estructu-
ras de datos a medida que las necesitamos, podemos a menudo aprovechar las estructuras de datos existentes. En 
esta sección, investigaremos la clase 

Stack

 en el paquete de utilerías de Java (

java.util

).

En la sección 19.5.3 hablamos sobre la clase 

Vector

, la cual implementa a un  arreglo que puede cambiar 

su tamaño en forma dinámica. La clase 

Stack

 extiende a la clase 

Vector

 para implementar una estructura de 

datos tipo pila. La conversión autoboxing ocurre cuando agregamos un tipo primitivo a un objeto 

Stack

, ya que 

la clase 

Stack

 sólo almacena referencias a objetos. En la fi gura 19.16 se demuestran varios métodos de 

Stack

.

Para obtener los detalles de la clase 

Stack

, visite el sitio Web 

java.sun.com/javase/6/docs/api/java/util/

Stack.html

.

Figura 19.15 

 |  Los métodos 

addAll

,

frequency

 y 

disjoint

 de 

Collections

. (Parte 2 de 2).

Despues de addAll, el vector contiene:
negro rojo verde rojo blanco amarillo azul

Frecuencia de rojo en el vector: 2

lista y vector tienen elementos en comun

 1 

// Fig. 19.16: PruebaStack.java

2

// Programa para probar la clase java.util.Stack.

3

import

 java.util.Stack;

 4 

import

 java.util.EmptyStackException;

 5 
 6 

public class

 PruebaStack 

 7 

{

 8  

public

 PruebaStack()

 9  

{

 10  

 

Stack< Number > pila = 

new

 Stack< Number >();

 11
 12  

 

// crea números para almacenarlos en la pila

13   

Long numeroLong = 

12L

;

 14  

 

Integer numeroInt = 

34567

;

 15  

 

Float numeroFloat = 

1.0F

;

 16  

 

Double numeroDouble = 

1234.5678

;

 17 
 18  

 

// usa el método push

19   

pila.push( numeroLong ); 

// mete un long

20   

imprimirPila( pila );

 21  

 

pila.push( numeroInt );

 // mete un int

22   

imprimirPila( pila );

 23  

 

pila.push( numeroFloat ); 

// mete un float

24   

imprimirPila( pila );

 25  

 

pila.push( numeroDouble );

 // mete un double

26   

imprimirPila( pila );

 27 
 28  

 

// elimina los elementos de la pila

29   

try

 30  

 

{

 

31    

Number objetoEliminado = 

null

;

 32 
 

33    

// saca elementos de la pila

34    

while

 ( 

true

 ) 

Figura 19.16

  |  La clase 

Stack

 del paquete 

java.util

. (Parte 1 de 2).

19_MAQ_CAP_19_DEITEL.indd820

4/19/081:31:30AM