Hoy el tema que nos ocupa es uno sencillo, pero que no debe pasarse por alto, por ser estas clases unas de las más usadas, dado su sencillo funcionamiento.
En primer lugar, vamos a inicializar un array de String, que como sabéis tiene longitud fija, lo que es un pequeño inconveniente a la hora de trabajar con algunos conjuntos de elementos. Para solucionar este problema, tenemos otras clases llamadas colecciones.
Dos de ellas son ArrayList y Vector. Un ArrayList es una implementación de la clase List, que es una colección que admite elementos duplicados y nulos, así como acceso por índice y otros métodos para trabajar con sus elementos. Vector también hereda de List es muy similar a ArrayList, con la diferencia de que la clase Vector es segura para trabajar con hilos (sincronizada). Esta ventaja penaliza ligeramente el rendimiento del Vector.
Antes de mostrar un ejemplo, añadir que a partir de la versión 1.6 1.5 de Java, si no me equivoco (me equivoqué :P), se introdujeron las colecciones genéricas, que suponen una ventaja en cuanto a que soportan comprobación de tipos en tiempo de compilación. Para definir el tipo de la colección simplemente se añade el tipo del objeto entre los símbolos '<' y '>' (ej.: Vector<String>).
A continuación, un sencillo ejemplo de uso de estas clases.
import java.util.ArrayList; import java.util.Iterator; import java.util.Vector; public class Test1 { public static void main(String[] args) { String[] arrayString = new String[]{"1", "2", "3", "4"}; for (int i = 0; i < arrayString.length; i++) { System.out.println(arrayString[i]); } ArrayList<String> arrayList = new ArrayList<String>(arrayString.length); for (int i = 0; i < arrayString.length; i++) { arrayList.add(arrayString[i]); } Iterator it = arrayList.iterator(); while(it.hasNext()) { System.out.println(it.next()); } Vector<String> vector = new Vector<String>(arrayString.length); for (int i = 0; i < arrayString.length; i++) { vector.add(arrayString[i]); } it = vector.iterator(); while(it.hasNext()) { System.out.println(it.next()); } } }
Hola!!
Muchas gracias por la info!! sólo decirte que las colecciones genéricas se introdujeron en la versión 1.5 de java.
Un saludo,
Nuria
Gracias Nuria!! ahora lo corrijo. Lo puse para ver si alguien se daba cuenta, jeje ;)
Un saludo!
tengo un problemilla con el que creo que me podeis ayudar. tengo un random y quiero asignarlo a un array, pero no lo consigo. Alguna idea?
package feedback;
import java.util.HashSet;
/**
*
* @author Pere
*/
public class primitiva {
public static void main(String args[]) {
HashSet t=new HashSet();
while (t.size()<9) {
Integer al=new Integer(10 + new java.util.Random().nextInt(91));
t.add(al);
}
java.util.List lista=new java.util.ArrayList(t);
java.util.Collections.sort(lista);
// Se muestran los resultados
java.util.Iterator it=lista.iterator();
while (it.hasNext()) {
System.out.println((Integer)it.next());
}
String []strArray = new String[9];
ListArray.toArray(strArray);
}
}