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