nibles en 

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

. Todos estos métodos reciben 

un tipo genérico como parámetro y devuelven una vista sincronizada del tipo genérico. Por ejemplo, el siguiente 
código crea un objeto 

List

 sincronizado (

lista2

) que almacena objetos 

String

:

List< String > lista1 = 

new

 ArrayList< String >();

List< String > lista2 = Collections.synchronizedList( lista1 );

Encabezados de los métodos 

public static

< T > Collection< T > synchronizedCollection( Collection< T > c )

< T > List< T > synchronizedList( List< T > unaLista )

< T > Set< T > synchronizedSet( Set< T > s )

< T > SortedSet< T > synchronizedSortedSet( SortedSet< T > s )

< K, V > Map< K, V > synchronizedMap( Map< K, V > m )

< K, V > SortedMap< K, V > synchronizedSortedMap( SortedMap< K, V > m )

Figura 19.22

  |  Métodos de envoltura de sincronización.

Figura 19.23

  |  Métodos de envolturas no modifi cables.

Encabezados de los métodos 

public static

< T > Collection< T > unmodifiableCollection( Collection< T > c )

< T > List< T > unmodifiableList( List< T > unaLista )

< T > Set< T > unmodifiableSet( Set< T > s )

< T > SortedSet< T > unmodifiableSortedSet( SortedSet< T > s )

< K, V > Map< K, V > unmodifiableMap( Map< K, V > m )

< K, V > SortedMap< K, V > unmodifiableSortedMap( SortedMap< K, V > m )

19.13 Colecciones no modifi cables 

833

19.13 Colecciones no modifi cables

La API 

Collections

 proporciona un conjunto de métodos 

static

 que crean 

envolturas no modifi cables

para las colecciones. Las envolturas no modifi cables lanzan excepciones 

UnsupportedOperationException

 si se 

producen intentos por modifi car la colección. En la fi gura 19.23 se enlistan los encabezados para estos métodos. 
Los detalles acerca de estos métodos están disponibles en 

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

Collections.html

. Todos estos métodos reciben un tipo genérico como parámetro y devuelven una vista no 

modifi cable del tipo genérico. Por ejemplo, el siguiente código crea un objeto 

List

 no modifi cable (

lista2

) que 

almacena objetos 

String

:

List< String > lista1 = 

new

 ArrayList< String >();

List< String > lista2 = Collections.unmodifiableList( lista1 );

Observación de ingeniería de software 19.5

Puede utilizar una envoltura no modifi cable para crear una colección que ofrezca acceso de sólo lectura a otros, 
mientras que a usted le permita acceso de lectura/escritura. Para ello, simplemente dé a los otros una referencia a la 
envoltura no modifi cable, y usted conserve una referencia a la colección original.

19_MAQ_CAP_19_DEITEL.indd833

4/19/081:31:37AM