Clase Vector y Arraylist
Clase Vector y Arraylist
Java proporciona un grupo de clases que almacenan secuencias de objetos de cualquier tipo: colecciones; estas se diferencian en la forma de organizar los objetos y, en consecuencia, en la manera de recuperarlos.
CLASE Vector
La clase Vector se encuentra en el paquete java.util y es una de estas colecciones , tiene un comportamiento similar a un arreglo unidimensional; guarda objetos o referencias de cualquier tipo, crece dinmicamente, sin necesidad de tener que programar operaciones adicionales; el arreglo donde almacena los elementos es de tipo Object, y su declaracin es: protected Object elementData[] A partir de Java 5 se puede establecer el tipo concreto de elemento, el cual siempre debe ser una clase, que puede guardar una coleccin, particularmente un vector, para realizar comprobaciones de tipo durante el proceso de compilacin; un vector de cadenas, por ejemplo: Vector<String> vc= new Vector<String> ();
Creacin de un vector
Se utiliza el operador new de igual forma que se crea cualquier objeto; la clase Vector dispone de varios constructores: public Vector(); crea un vector vacio
public Vector(int capacidad); crea un vector con una capacidad inicial public Vector(Colecttion org); crea un vector con los elementos de org. Un ejemplo: Vector v1=new Vector (); Vector v2=new Vector (100); Vector v3=new Vector (v2); // v3 contiene los mismos elementos que v2
Insertar elementos
Hay diferentes mtodos para insertar elementos al vector; los elementos que se insertan deben ser objetos, no pueden ser datos de tipos primitivos como int, char, etc. Mtodos de la clase para insertar: boolean add (Object ob); aade el objeto despus del ltimo elemento del vector void addElement(Object ob); aade el objeto despus del ltimo elemento del vector void insertElement(Object ob, int p); inserta el objeto en la posicion p, los elementos posteriores a p se desplazan.
Debe considerarse que cuando se crea el vector con un tipo concreto, el elemento que se inserta ha de ser de ese tipo, o uno derivado, por ejemplo: Vector<String> vc=new Vector<String>(); vc.add(jueves), vc.addElement (new integer (12)); //error de tipo
Acceso a un elemento
Se accede a un elemento del vector por la posicin que ocupa; los mtodos de acceso devuelven el elemento con el tipo Object, entonces puede ser necesario realizar una conversin al tipo del objeto. Object elementAt(int p); Object get (int p); int size(); devuelve el elemento cuya posicin es p
Eliminar un elemento
Un vector es una estructura dinmica , crece o decrece si se aaden o eliminan objetos; un elemento se puede eliminar de diversas formas, una de ellas es por posicin que ocupa en el ndice, a partir de esa posicin el resto de elementos del vector se mueven una posicin a la izquierda disminuyendo el nmero de elementos; otra forma de transmitir el objeto que se desea retirar del vector; tambin hay mtodos de la clase para eliminar todos los elementos de una coleccin. void removeElementAt(int indice); elimina elemento indicie y el resto se reenumera
boolean removeElement (Object op); elimina la primera aparicin de op, devuelve true si realiza la eliminacin void removeAll(Collection gr); void removeAllElements(); elimina los elementos que estn en gr.
Bsqueda
Los diversos mtodos de bsqueda de Vector devuelven la posicin de la primera ocurrencia del objeto buscado, o bien verdadero-falso segn el resultado de la bsqueda. boolean contains (Object op); devuelve true si encuentra op int indexOf(Object op); devuelve la primera posicin de op, -1 si no existe En la clase VectorNumero.java se utiliza un Vector para guardar nmeros racionales, la clase Racional agrupa las caractersticas de todo nmero racional: numerador y denominador; en dicha clase el mtodo mostrar() escribe en pantalla el numero racional, la clase principal crea un vector al cual se aaden nmeros racionales; a continuacin se recuperan los elementos y se escriben.
Clase ArrayList
Esta clase agrupa elementos como un arreglo, es equivalente a Vector, pero con las mejoras introducidas por Java 2; permite acceder a cualquier elemento, insertar o borrar a partir del ndice en cualquier posicin, aunque un tanto ineficiente si se realiza en posiciones intermedias. A partir de Java 5 es una clase genrica y, por consiguiente, se puede establecer el tipo concreto de los elementos; esta clase tiene tres constructores: public ArrayList(); public ArrayList(int capacidad); public ArrayList(Collection c); Por ejemplo, se crea una coleccin con los elementos de un vector; ArrayList al = new ArrayList(100); A continuacin, se crea una coleccin de elementos tipo Estudiante: ArrayList<Estudiante> al = new ArrayList<estudiante>(); En la clase ListaArreglo.java se realizan las operaciones de aadir, eliminar, buscar y reemplazar cadenas con ArrayList. La coleccin est formada por cadenas ledas del teclado; la declaracin va a especificar que la coleccin contiene elementos String. Una vez formada la coleccin se elimina una cadena concreta y se reemplaza el elemento que ocupa la posicin central; para realizar una bsqueda, se utiliza el mtodo indexOf() que devuelve la posicin que ocupa, o bien -1, a partir de esta posicin se crea un iterador llamando al mtodo listIterator() con el fin de recorrer y, a la vez, escribir los elementos.