824

Capítulo 19 Colecciones

números se encuentran en orden ascendente) o en un orden especifi cado por un objeto 

Comparator

. La clase 

TreeSet

 implementa a 

SortedSet

. El programa de la fi gura 19.19 coloca cadenas en un objeto 

TreeSet

. Estas 

cadenas se ordenan al ser agregadas al objeto 

TreeSet

. Este ejemplo también demuestra los 

métodos de vista de 

rango

, los cuales permiten a un programa ver una porción de una colección.

En las líneas 16 y 17 del constructor se crea un objeto 

TreeSet

 de objetos 

String

 que contiene los elemen-

tos del arreglo 

nombres

, y se asigna el objeto 

SortedSet

 a la variable 

arbol

. Tanto 

SortedSet

 como

TreeSet

 

son tipos genéricos. En la línea 20 se imprime en pantalla el conjunto inicial de cadenas, utilizando el método 

imprimirConjunto

 (líneas 36 a 42), sobre el cual hablaremos en breve. En la línea 24 se hace una llamada al 

método

headSet

 de 

TreeSet

 para obtener un subconjunto del objeto 

TreeSet

, en el que todos los elementos 

 1 

// Fig. 19.18: PruebaSet.java

2

// Uso de un objeto HashSet para eliminar duplicados.

3

import

 java.util.List;

 4 

import

 java.util.Arrays;

 5 

import

 java.util.HashSet;

 6 

import

 java.util.Set;

 7 

import

 java.util.Collection;

 8 
 9 

public class

 PruebaSet 

 10 

{

 11  

private static final

 String colores[] = { 

"rojo"

,

"blanco"

,

"azul"

,

 12  

 

"verde"

,

"gris"

,

"naranja"

,

"carne"

,

"blanco"

,

"cyan"

,

 13  

 

"durazno"

,

"gris"

,

"naranja"

 };

 14 
 15  

// crea e imprime un objeto ArrayList

16

public

 PruebaSet()

 17  

{

 18  

 

List< String > lista = Arrays.asList( colores );

 19  

 

System.out.printf(

"ArrayList: %s\n"

, lista );

 20  

 

imprimirSinDuplicados( lista );

 21  

}

// fin del constructor de PruebaSet

22

 23  

// crea conjunto a partir del arreglo para eliminar duplicados

24

private void

 imprimirSinDuplicados( Collection< String > coleccion )

 25  

{

 26  

 

// crea un objeto HashSet 

27   

Set< String > conjunto = 

new

 HashSet< String >( coleccion );

 28 
 29  

 

System.out.println(

"\nLos valores sin duplicados son: "

 );

 30 
 31  

 

for

 ( String s : conjunto )

 

32    

System.out.printf(

"%s "

, s );

 33 
 34  

 

System.out.println();

 35  

}

 // fin del método imprimirSinDuplicados

36

 37  

public static void

 main( String args[] )

 38  

{

 39  

 

new

 PruebaSet();

 40  

}

 // fin de main 

41

}

// fin de la clase PruebaSet

Figura 19.18

  |  Objeto 

HashSet

 utilizado para eliminar valores duplicados de un arreglo de cadenas.

ArrayList: [rojo, blanco, azul, verde, gris, naranja, carne, blanco, cyan, durazno, gris, 
naranja]

Los valores sin duplicados son:
durazno gris verde azul blanco rojo cyan carne naranja

19_MAQ_CAP_19_DEITEL.indd824

4/19/081:31:32AM