declaracion de vectores dinamicos

nando636
30 de Mayo del 2002
necesito declarar vectores dinamicos como lo hace c++, e buscado en internet y todavia no he encontrado, la unca forma que he encotradoes

int vector[]=new vector[una varible];

lo necesito sin ponerle la variable...

otra ayuda... como hago para limpiar un vector

gracias

Oblongo
30 de Mayo del 2002
Casi te respondes tú mismo. Porque el nombre que le has dado al array que pones de ejemplo, corresponde justamente con la clase Vector de Java, que es lo que tú buscas. En Java 1, posee la nada despreciable cantidad de 24 métodos. Además como maneja directamente objetos, dentro de un mismo vector puedes tener Integer, Doubles, etc...
Posee además tres constructores:
Vector(); Crea un vector por defecto de tamaño 10
Vector(int tamaño); Creas el vector del tamaño que quieras
Vector(int tamaño, int incremento); Lo mismo que el anterior, pero cuando quieras aumentar dinámicamente su tamaño, lo hará en la cantidad que le hayas dado como incremento.
Además puedes usar la clase java.util.Enumeration
para recorrer el vector. Con esta clase se hace más homogéneo el acceso a otras clases, porque siempre usas los mismos métodos independientemente de los objetos que manejes.

import java.util.Vector;
import java.util.Enumeration;

class demoVector {

public static void main (String args[]) {
Vector mivector = new Vector(3,2);

System.out.println ("Tienes actualmente "+mivector.size()+" elementos metidos");
System.out.println ("Tamaño total "+miVector.capacity());
// hemos definido un vectro de tamaño 3
// cuando metamos el 4º elemento, como no hay sitio
// dinámicamente aumentará su capacidad en 2
// es decir nos cabrían 5
miVector.addElement(new Integer(4));
miVector.addElement(new Double(7.056));
miVector.addElement(new Float(4.6));
// en la siguiente insercion, el vector aumenta
miVector.addElement(new Integer(52));

// vamos a listar todos los elemento sin importarnos
// del tipo de objeto que sea.

Enumeration enumerar = miVector.elements();

while (enumerar.hasMoreElements()) {
System.out.print (enumerar.nextElement()+ " ");
}
}
}

Si usas enumeraciones, no te tienes que preocupar del tipo del objeto, sino, cuando saques un elemento del vector, con los métodos de la clase Vector, deberás hacer un cast, para forzar a un tipo concreto o usar el operador instanceOf() para averigurar el tipo del objeto y manipularlo correctamente. Por supuesto si todos los elementos son del mismo tipo no tienes problemas. Pero lo que quería mostrarte es que es muy versátil la clase Vector. Mírate los métodos y verás que se pueden hacer muchas más cosas.

Para limpiar un vector bastaría con usar uno de los métodos siguientes:
removeElementAt(int posición); Elimina una posicion
removeElement(Object objeto); Elimina el objeto si existe y devuelve un booleano diciendo si lo ha conseguido o no.
removeAllElements(); Elimina TODOS los elementos, después de este método el tamaño (size) del vector es cero (no su capacidad).

El código que he puesto de ejemplo, no lo he compilado, lo he escrito directamente, por lo tanto puede tener algún error sintáctico.

Ójala te aclare algo. Un saludo.



Christian Cano
30 de Mayo del 2002
Creo que simpemente tienen que poner tu vector pero sin variable de tamaño y cada vez que que vayas a meterle un dato pones una instruccion de
new(tipo de dato)[el dato]

checate este ejemplo

Image vector[]

aux= getParameter("foto1")
vecto[1]= getImage(getDocumentBase(),aux);