Redimensionar un vector

BOGEYBOY
02 de Noviembre del 2005
Hola a todos, tengo un problema a la hora de intentar redimensionar un vector dinámico que quiero crear, el vector normal se crea sin problemas con el tamaño que yo le indico, pero a la hora de redimensionarlo no me cambia el tamaño del vector.
El código que tengo es el siguiente:

public void reVector(int nelrv)
{
int nvd[] = new int[nelrv];
for (int i=0;i<=nelrv;i++)
{
nvd[i] = vd[i] //vd[i] es el vector que ya ha sido creado anteriormente
}
vd=nvd;
tamano=nelrv; // aquí le asigno al tamano del vector anteriorel nuevo tamaño.
}

Tengo este código escrito pero me falla, y no se el porque, alguien me podría ayudar, por favor???????

JASANRIO
02 de Noviembre del 2005
Hola

Creo que el fallo esta en el for , haces un <= cuando tiene que que ser < estricto

Y vigila no pasarte en el indice de vd

Espero que esto te ayude

Saludos

BOGEYBOY
02 de Noviembre del 2005
Funcionar funciona, pero solo funciona redimensionando a un menor tamaño y a un mayor tamaño no funciona, que puedo hacer?????????

xscorpio
02 de Noviembre del 2005
tienes problemas en el for. por eso es que no puedes redimensionar a un mayor tamaño.
solo deberias hacer algo como
int[] newvector = new int[newsize];
System.arraycopy(newvector, 0, vector, vector.length);
vector = newvector;

xscorpio
02 de Noviembre del 2005
se me fue, a la hora de copiar debe ser
System.arraycopy(vector, 0, newvector, 0, vector.length);

BOGEYBOY
02 de Noviembre del 2005
El caso está en que no puedo usar la clase vector que trae java implementada. Ese es el gran problema

xscorpio
02 de Noviembre del 2005
no me refería a la clase vector sino a tus array normales
int[] vector;
int[] newvector;