ARREGLOS – CLASE VECTOR Ing. Marina Cipolletti ¿QUÉ ES UN ARREGLO? Es una estructura de datos. Almacena datos del mismo tipo en forma indexada. El tamaño se declara en un primer momento y no cambia en tiempo de ejecución (*). El número de elementos se obtiene con la función nombre_arreglo.length DECLARACIÓN DE UN ARREGLO EN JAVA • tipo_dato[] nombre_arreglo; • nombre_arreglo [] = new tipo_dato[tamaño]; Arreglos multidimensionales: tipo_dato[] [] nombre_arreglo = new tipo_dato[] []; DECLARACIÓN - EJEMPLO int [] miArreglo; miArreglo = new int [50]; O directamente: int [] miarreglo = {3, 4,10,6}; int x = miarreglo [2]; // x se inicializa en 10 Arreglo de botones: Button [] ArregloBotones= new Button[5]; for (int i = 0; i <ArregloBotones.length; i++) ArregloBotones[i]= new Button(); CLASE CONTENEDORA Una clase contenedora es una estructura de datos que guarda y organiza un conjunto de objetos, y proporciona acceso a ellos mediante los métodos de un tipo de datos abstractos. También se utiliza el término conjunto en lugar de contenedor. Estas clases se redimensionan automáticamente, por lo que se puede colocar en ellas cualquier número de objetos sin necesidad de tener que ir controlando continuamente en el programa la longitud de la colección. CLASE VECTOR La clase Vector es una clase contenedora. La clase Vector es parte del paquete java.util de la biblioteca estándar de clases de Java. Ofrece un servicio similar a un arreglo, ya que se pueden almacenar y acceder a valores y referencias a través de un índice. CLASE VECTOR Un elemento puede insertarse y eliminarse de una posición específica a través de la invocación de un método. A diferencia de un arreglo, un Vector no está declarado para ser de un tipo particular. Un objeto de tipo Vector maneja una lista de referencias a la clase Object, así no pueden almacenarse tipos de datos primitivos. CLASE VECTOR Algunos métodos de la clase Vector: • Vector( ) Constructor: crea un vector inicialmente vacío. • void addElement (Objet obj) especificado al final del vector. • void setElementAt (Object obj, int indíce) Inserta el objeto especificado en el vector en la posición especificada • boolean contains (Object obj) Regresa verdadero si el objeto dado pertenece al vector. Inserta el objeto CLASE VECTOR • Object remove (int indíce) Elimina el objeto que se encuentra en la posición especificada y lo regresa. • boolean removeElement (Object obj) Elimina la primera ocurrencia del objeto especificado en el vector. • void removeElementAt (int indíce) Elimina el objeto especificado en el índice del vector. • void clear ( ) Elimina todos los objetos del vector. CLASE VECTOR • int indexOf (Object obj) Regresa el índice del objeto especificado. Regresa -1 si no fue encontrado el objeto. • Object elementAt (int indíce) Regresa el componente en el índice especificado. • boolean isEmpty ( ) Regresa verdadero si el vector no contiene elementos. • int size ( ) Regresa el número de elementos en el vector. EJEMPLO - EjClaseVector EJEMPLO – TestComplejo private static Complejo generarNumeroComplejoAleatorio(){} private static Complejo generarNumeroComplejo(int R, int I){} /*Método para generar un vector con n números complejos aleatorios*/ private static Vector generarVectorAleatorio(int n){} /* Método para generar un vector con n números complejos de la forma “n+jn” */ private static Vector generarVector(int n){} EJEMPLO – TestComplejo C = (Complejo) VectorComplejos.elementAt(2); 3.0+j3.0 A = C; C = new Complejo(3, 3); // 3.0+j3.0 VectorComplejos C // EJEMPLO – TestComplejo C = (Complejo) VectorComplejos.elementAt(2); // 3.0+j3.0 A = C; C = new Complejo(3, 3); // 3.0+j3.0 VectorComplejos C A = C EJEMPLO – TestComplejo C = (Complejo) VectorComplejos.elementAt(2); // 3.0+j3.0 A = C; C = new Complejo(3, 3); // 3.0+j3.0 VectorComplejos A C EJEMPLO – TestComplejo contains public boolean contains(Object elem) Tests if the specified object is a component in this vector. Returns: true if and only if the specified object is the same as a component in this vector, as determined by the equals method; false otherwise.