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[]?
}
}
Como é feita essa atribuição? [RESOLVIDO]
5 Respostas
O Z foi preenchido aqui:
go(int[]... z)
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
Ok, isso eu entendi, mas porque o For nao percorre todo o array?
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
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.