Foro de elhacker.net

Programación => Java => Mensaje iniciado por: KaRaLLo en 21 Enero 2012, 14:45 pm



Título: Problema con un metodo (arrays)
Publicado por: KaRaLLo en 21 Enero 2012, 14:45 pm
En este método lleno mi array int capCaixaGz=new int[5] de numeros aleatorios. El método funciona perfectamente, el problema, es que luego quiero hacer lo mismo con otro array.

Código:
		public void setCapCaixNv(){

for (byte i = 0; i < capCaixaGz.length; i++)
capCaixaGz[i]=(int) Math.floor(Math.random()*1000000);

}//fin del metodo setCapCaixaNv


Lo que me gustaría hacer sería esto


Código:
		public void setCapBanco(int BANCO){

for (byte i = 0; i < BANCO.length; i++)
BANCO[i]=(int) Math.floor(Math.random()*1000000);

}//fin del metodo setCapBanco

Mi duda es como puedo asignarle a mi array capCaixaGz la referencia banco para poder introducirlo despues en el método ???.

Muchas gracias


Título: Re: Problema con un metodo (arrays)
Publicado por: Proteus1989 en 21 Enero 2012, 16:18 pm
public void setCapBanco(int BANCO){

Le estas pasando un entero no un array!


Título: Re: Problema con un metodo (arrays)
Publicado por: KaRaLLo en 21 Enero 2012, 16:25 pm
Potreus no me estas entendiendo quiero usar ese metodo para introducir dos arrays por ejemplo

setCapBancos(CapCaix[])

y mas a delante

setCapBancos(CapSantander[])


Título: Re: Problema con un metodo (arrays)
Publicado por: Proteus1989 en 21 Enero 2012, 16:29 pm
Pues...
Código:
public void setCapBanco(int[] banco)
{

for (byte i = 0; i < banco.length; i++)
banco[i]=(int) Math.floor(Math.random()*1000000);

}//fin del metodo setCapCaixaNv

Luego llamas a setCapBanco(vectorBanco1), setCapBanco(vectorBanco2), setCapBanco(vectorBanco3) y los va modificando
Como es memoria dinámica no hace falta devolverlo.


Título: Re: Problema con un metodo (arrays)
Publicado por: KaRaLLo en 21 Enero 2012, 16:44 pm

Luego llamas a setCapBanco(vectorBanco1), setCapBanco(vectorBanco2), setCapBanco(vectorBanco3) y los va modificando
Como es memoria dinámica no hace falta devolverlo.

No he entendido lo ultimo. lo que no se como hacer es como asociarle banco[] a un vector por ejemplo :

Código:

banco[]=vector[]

//esto tira error


Título: Re: Problema con un metodo (arrays)
Publicado por: Proteus1989 en 21 Enero 2012, 16:55 pm
El problema es que no tienes los conceptos claros, se nota que estás empezando :)

1) En java todos los objetos, arrays son dinamicos. Es decir, lo que ti tienes no es la memoria tal cual, sino un puntero que apunta a la dirección de memoria donde está guardada la información.

2) Para asignar un vector a otro es vector = blanco, sin los corchetes

3) Basandome en lo que he dicho en el primer punto cuando tu haces
Código:
int[] banco1 = new int[10];
setCapBanco(banco1);
Automaticamente se queda guardado en banco1. Lo que le has pasado a setCapBanco no es el array, sino el puntero de donde tiene que escribir.

No se si te he ayudado o te he liado más. Pero si no entiendes la memoria dinámica y los punteros que se usan en por ejemplo c, c++ es dificil entender el funcionamiento de java.


Título: Re: Problema con un metodo (arrays)
Publicado por: KaRaLLo en 21 Enero 2012, 17:14 pm
El problema es que no tienes los conceptos claros, se nota que estás empezando :)

1) En java todos los objetos, arrays son dinamicos. Es decir, lo que ti tienes no es la memoria tal cual, sino un puntero que apunta a la dirección de memoria donde está guardada la información.

2) Para asignar un vector a otro es vector = blanco, sin los corchetes

3) Basandome en lo que he dicho en el primer punto cuando tu haces
Código:
int[] banco1 = new int[10];
setCapBanco(banco1);
Automaticamente se queda guardado en banco1. Lo que le has pasado a setCapBanco no es el array, sino el puntero de donde tiene que escribir.

No se si te he ayudado o te he liado más. Pero si no entiendes la memoria dinámica y los punteros que se usan en por ejemplo c, c++ es dificil entender el funcionamiento de java.



Vamos a ver si me aclaro xD, imagínate que tengo el este metodo

Código:

public void imprimir(int vector1[]){

for(int i=0;i<vector1.length;i++)
System.out.println(vector1[i])
}


Luego puedo utilizar este metodo de esta forma :

Código:
imprimir(vector2[])

porque le estoy pasando donde tiene que realizar el metodo, y de esta forma me va a imprimir el vector 2 dado este ejemplo ?


Título: Re: Problema con un metodo (arrays)
Publicado por: Proteus1989 en 21 Enero 2012, 17:38 pm
Exacto, solo que el [] sobra


Título: Re: Problema con un metodo (arrays)
Publicado por: KaRaLLo en 21 Enero 2012, 18:15 pm
Gracias potreus, has si de gran ayuda, la verdad esque soy estudiante de DAM, (antiguo DAI), y la profesora que tengo es un poco retrasada

(eso lo digo sacando un 10 en el módulo de programación de la pasada evaluación)

Si supieras de alguna documentación de java que te hubiera sido realmente útil estaría verdaderamente agradecido.


Título: Re: Problema con un metodo (arrays)
Publicado por: Proteus1989 en 21 Enero 2012, 19:46 pm
http://foro.elhacker.net/java/manual_java_basico_pdf_y_1027_paginas-t206793.0.html
Ese es muuuy completo y creo que lo empieza a explicar todo bastante bien desde el principio.