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