Como é feita essa atribuição? [RESOLVIDO]

5 respostas
evertonsilvagomesjav
int [] x = {1,2,3};
		int y[] = {4,5,6};
		
		go(x,y);
	}
	
	static void go(int[]... z) {
		for(int[] a : z){
			System.out.print(a[0]);// aqui imprime 1 depois 4 ou seja a primeira posiçao de x e de y. Mas como foi preenchido meu z[]?
		}
		
	}

5 Respostas

Thiago_MuiLoko

O Z foi preenchido aqui:

go(int[]... z)
juno.rr

o método go(int[] … z) recebe um array de arrays do tipo int.
Quando vc define um método desta maneira (int … i), podem ser passados qualquer número de argumentos, desde nenhum até muitos, e esse argumento será tratado como um array.
Na linha 4, vc está passando 2 arrays, seria o mesmo que se fosse int[][].
Na linha 8 o for faz:

System.out.print(z[0][0]);
System.out.print(z[1][0]);

Tomara que tenha esclarecido alguma coisa e não complicado mais… hehehe

evertonsilvagomesjav

Ok, isso eu entendi, mas porque o For nao percorre todo o array?

lucianodacunha.net

esse recurso é conhecido como lista variável de argumentos … Java 5.

com ele vc pode chamar esse método, go() passando quantidades variáveis, nesse caso de arrays…

http://www.deitel.com/articles/java_tutorials/20060106/VariableLengthArgumentLists.html
http://cupi2.uniandes.edu.co/web/javadoc/j2se/1.5.0/docs/guide/language/varargs.html

[]'s

evertonsilvagomesjav

omg, entendi aqui. Eu sei que isso é varargs, nao estava enchergando a atribuiçao feita de arrays de arrays.

Era pra chegar nessa conclusão:

public static void main(String[] args) {
		
		 int [] x = {1,2,3};   
		    int y[] = {4,5,6};   
		       
		    go(x,y);   
		}   
		  
		static void go(int[]... z) {   
		    for(int[] a : z){   
		       
		    	for(int i : a){
		    		System.out.println(i);
		    	}
		       
		}  

	}

vlw ai.

Criado 26 de agosto de 2010
Ultima resposta 26 de ago. de 2010
Respostas 5
Participantes 4