Lista de Java la interfaz (java.util.List) puede ser generada. En otras palabras, a las instancias de List se les puede asignar un tipo, por lo que solo las instancias de ese tipo pueden insertarse y leerse desde esa lista. He aquí un ejemplo:
List<String> list = new ArrayList<String>();
Esta lista ahora sólo está dirigido a instancias de String, es decir, sólo instancias de String se pueden poner en esta lista. Si intenta poner algo más en esta lista, el compilador se quejará.
Las comprobaciones de tipo genérico solo existen en tiempo de compilación. En tiempo de ejecución, es posible modificar su código para que una lista de cadenas tenga otros objetos insertados por String. Esta es una mala idea, sin embargo.
Acceso a una lista genérica
Usted puede obtener e insertar los elementos de una lista genérica como esta:
List<String> list = new ArrayList<String>();
String string1 = "a string";
list.add(string1);
String string2 = list.get(0);
Aviso cómo no es necesario convertir el objeto obtenido de la lista. llamada al método get(), como normalmente es necesario. El compilador sabe que esta lista solo puede contener instancias de cadena, por lo que no es necesario realizar conversiones.
se repite una lista genérica
Se puede recorrer una lista genérica utilizando un iterador, así:
List<String> list = new ArrayList<String>();
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
String aString = iterator.next();
}
Aviso cómo no es necesario convertir el objeto devuelto por el iterator.next() próxima llamada. Como la Lista está genérica (tiene un tipo), el compilador sabe que contiene instancias de Cadena. Por lo tanto, no es necesario emitir los objetos que se obtienen de él, incluso si proviene de su iterador.
También puede utilizar el nuevo ciclo for, así:
List<String> list = new ArrayList<String>();
for(String aString : list) {
System.out.println(aString);
}
Observe cómo se declara una variable de cadena dentro del parantheses del bucle para. Para cada iteración (cada elemento en la Lista) esta variable contiene el elemento actual (Cadena actual).