2012-04-12 18 views
5

¿Cómo sería una lista genérica de C# .net en java?Algo similar a C# .NET Lista genérica en java

algo como lo siguiente:

public class ClientList : List<Client> { } 

la respuesta de Nikil era perfecto, sólo quiero añadir que el que quiera crear una clase de la lista:

public class ClientList extends ArrayList<Client> 

Respuesta

13

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).

Cuestiones relacionadas