802

Capítulo 19 Colecciones

En las líneas 17 y 18 se crean los objetos 

LinkedList

 llamados 

lista1

 y 

lista2

 de tipo 

String

. Observe 

que

LinkedList

 es una clase genérica que tiene un parámetro de tipo, para el cual especifi camos el argumento 

de tipo 

String

 en este ejemplo. En las líneas 21 a 26 se hace una llamada al método 

add

 de 

List

 para anexar 

elementos de los arreglos 

colores

 y 

colores2

 al fi nal de 

lista1

 y 

lista2

, respectivamente.

En la línea 28 se hace una llamada al método 

addAll

de

List

 para anexar todos los elementos de 

lista2

 al 

fi nal de 

lista1

. En la línea 29 se establece 

lista2

 en 

null

, de manera que el objeto 

LinkedList

 al que hacía 

referencia 

lista2

 pueda marcarse para la recolección de basura. En la línea 30 se hace una llamada al método 

imprimirLista

 (líneas 42 a 50) para mostrar el contenido de 

lista1

. En la línea 32 se hace una llamada al 

método

convertirCadenaAMayusculas

 (líneas 53 a 62) para convertir cada elemento 

String

 a mayúsculas, 

y después en la línea 33 se hace una llamada nuevamente a 

imprimirLista

 para mostrar los objetos 

String

modifi cados. En la línea 36 se hace una llamada al método 

eliminarElementos

 (líneas 65 a 68) para eliminar 

los elementos empezando desde el índice

 4

 hasta, pero no incluyendo, el índice 

7

 de la lista. En la línea 38 se hace 

una llamada al método 

imprimirListaInversa

 (líneas 71 a 80) para imprimir la lista en orden inverso.

El método 

convertirCadenasAMayusculas

 (líneas 53 a 62) cambia los elementos 

String

 en minúsculas 

del argumento 

List

 por objetos 

String

 en mayúsculas. En la línea 55 se hace una llamada al método 

list-

60    

iterador.set( color.toUpperCase() );

 // convierte a mayúsculas

61   

}

// fin de while

62

}

// fin del método convertirCadenasAMayusculas

63

 64  

// obtiene sublista y utiliza el método clear para eliminar los elementos de la misma

65

private void

 eliminarElementos( List< String > lista, int inicio, int fin )

 66  

{

 67  

 

lista.subList( inicio, fin ).clear();

// elimina los elementos

 68  

}

 // fin del método eliminarElementos

69

 70  

// imprime la lista inversa

71

private void

 imprimirListaInversa( List< String > lista )

 72  

{

 73  

 

ListIterator< String > iterador = lista.listIterator( lista.size() );

 74
 75  

 

System.out.println(

"\nLista inversa:"

 );

 76 
 77  

 

// imprime la lista en orden inverso

78   

while

 ( iterador.hasPrevious() ) 

 

79    

System.out.printf(

"%s "

, iterador.previous() ); 

 80  

}

// fin del método imprimirListaInversa

81

 82  

public static void

 main( String args[] )

 83  

{

 84  

 

new

 PruebaList();

 85  

}

// fin de main

 86 

}

// fin de la clase PruebaList

Figura 19.4

  |  Objetos 

List

 y 

ListIterator

. (Parte 2 de 2).

lista:
negro amarillo verde azul violeta plateado dorado blanco cafe azul gris plateado

lista:
NEGRO AMARILLO VERDE AZUL VIOLETA PLATEADO DORADO BLANCO CAFE AZUL GRIS PLATEADO

Eliminando elementos 4 a 6...
lista:
NEGRO AMARILLO VERDE AZUL BLANCO CAFE AZUL GRIS PLATEADO

Lista inversa:
PLATEADO GRIS AZUL CAFE BLANCO AZUL VERDE AMARILLO NEGRO

19_MAQ_CAP_19_DEITEL.indd802

4/19/081:31:21AM