En el siguiente código fuente se demuestra el uso de Vectores:
import java.util.Vector; class Clip {} class Lapiz {} class Pluma {} class Silla {} class SillaReclinable {} public class ArticulosOficina { public static void main(String[] args) { // Un arreglo de Clips Clip[] c = new Clip[5]; // Un objeto de Lapiz Lapiz l = new Lapiz(); // Un arreglo de Plumas Pluma[] p = new Pluma[7]; // Un arreglo de Sillas Silla[] s = { new Silla(), new Silla(), new Silla() }; // Un Objeto Tipo String String deptF = new String("Finanzas"); String deptV = new String("Ventas"); // Definir Dos Vectores Vector ciudad1 = new Vector(3); Vector ciudad2 = new Vector(4,5); //Iniciar asignación de Objetos a Vectores //Un Vector puede tomar cualquier tipo de Objeto ciudad1.add(deptF); ciudad1.add(c); ciudad1.add(l); ciudad2.add(deptV); ciudad2.add(c); ciudad2.add(l); System.out.println("Vector ciudad1 tiene " + ciudad1.size() + " elementos y una capacidad de " + ciudad1.capacity()); System.out.println("Vector ciudad2 tiene " + ciudad2.size() + " elementos y una capacidad de " + ciudad2.capacity()); // Asignar otros valores para ver incremento de capacidad ciudad1.add(p); ciudad1.add(s); ciudad2.add(p); ciudad2.add(s); System.out.println("Después de agregar otros elementos: "); System.out.println("Vector ciudad1 tiene " + ciudad1.size() + " elementos y una capacidad de " + ciudad1.capacity()); System.out.println("Vector ciudad2 tiene " + ciudad2.size() + " elementos y una capacidad de " + ciudad2.capacity()); String deptExtraido = (String) ciudad1.elementAt(0); Silla[] sillaExtraida = (Silla[]) ciudad1.elementAt(4); System.out.println("El departamento de " + deptExtraido + " en la ciudad1 tiene " + sillaExtraida.length + " sillas"); SillaReclinable[] sr = new SillaReclinable[12]; ciudad2.insertElementAt(sr,4); deptExtraido = (String) ciudad2.elementAt(0); // La siguiente extracción generaría un error // porque este elemento del Vector ya no es una Clase Silla // sillaExtraida = (Silla[]) ciudad2.elementAt(4); SillaReclinable[] sillaRecExtraida = (SillaReclinable[]) ciudad2.elementAt(4); System.out.println("El departamento de " + deptExtraido + " en la ciudad2 tiene " + sillaRecExtraida.length + " sillas"); } } |
Primeramente se definen varias Clases que constan únicamente de su declaración : Clip, Lapiz, Pluma, Silla, SillaReclinable
seguido se encuentra la definición de la Clase principal ArticulosOficina
que contiene solo su método principal (main
), dentro de este método se define lo siguiente:
Se definen diversas instancias de las Clases declaradas con anterioridad, unas de ellas en manera de arreglos y otras como un solo objeto.
Posteriormente se definen dos vectores, a través de distintos constructores; la primer instancia indica que su espacio inicial será para tres objetos, mientras la segunda instancia para cuatro objetos, donde el 5 indica la capacidad de incremento (delta) cuando se requiera espacio para más objetos.
Son asignados tres objetos a los Vectores y se imprime a pantalla el tamaño y capacidad de ambos.
Son asignados otros dos objetos a los Vectores y se imprime a pantalla su tamaño y capacidad, con lo que puede corroborarse la manera en que incrementan su tamaño.
Son extraídos del primer Vector dos elementos, nótese que dicha extracción requiere que sea realizado un "Casting" explicito, lo cual es llevado acabo a través de paréntesis ( ) ; esto se debe a que la extracción es llevada acabo de una Clase genérica (Vector) hacia una más especifica ya sea String o Silla[] ("Down-Casting").
Es reasignado un valor del segundo vector a través del método insertElement
, el cual toma como valor de entrada el índice a substituirse.
Son extraídos del segundo Vector dos elementos, para posteriormente imprimirse a pantalla sus valores.