Redimensionar un vector
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???????
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???????
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
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
Funcionar funciona, pero solo funciona redimensionando a un menor tamaño y a un mayor tamaño no funciona, que puedo hacer?????????
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;
solo deberias hacer algo como
int[] newvector = new int[newsize];
System.arraycopy(newvector, 0, vector, vector.length);
vector = newvector;
se me fue, a la hora de copiar debe ser
System.arraycopy(vector, 0, newvector, 0, vector.length);
System.arraycopy(vector, 0, newvector, 0, vector.length);
El caso está en que no puedo usar la clase vector que trae java implementada. Ese es el gran problema