A duvida e o seguinte, eu não preciso indicar o tamanho do segundo nível de array em argCopy com
“new String[3][5]“ ???
Porque mesmo indicando não vale para nada, porque os tamanhos dos arrays do segundo nível vão se modificarem e terem dimensões diferentes a medida que vou referenciando a outros arrays unidirecionais com dimensões diferentes assim como no exemplo teste e teste1 !!!
Bom, não sei se fui em claro na minha duvida. Mas gostaria de alguma resposta…
Não entendi o que você quer saber…Por que na declaração da Array de String você está indicando o tamanho da segunda dimensão…não estou vendo nada de errado no código! :shock:
gulira
akumaldo:
gulira:
A duvida e o seguinte, eu não preciso indicar o tamanho do segundo nível de array em argCopy com
“new String[3][5]“ ???
Não entendi o que você quer saber…Por que na declaração da Array de String você está indicando o tamanho da segunda dimensão…não estou vendo nada de errado no código! :shock:
Então, realmente não esta errado. Más porque declarar como tamanho 5, se isto não faz efeito nenhum, pois posso trabalhar com arrays dimensoes diferentes, como no caso dos arrays teste e teste1.
Ah…entendi…você quer saber por que foi declarado o array com a segunda dimensão em 5, sendo que você não viu ultilização???até ai não sei, realmente o array poderia ser declarado da segunda maneira que você declarou, e então ser populado pelos array undimensionais de string, você poderia sim deixar sem o tamanho da segunda dimensão e esperar os String[] popular…
T
thingol
O seguinte programa mostra a diferença entre a declaração "new String[3][5]" e "new String[3][]".
classTesteString{privatestaticvoidimprimeArray(String[][]arr){if(arr!=null){for(inti=0;i<arr.length;++i){System.out.print("Linha "+i+": ");if(arr[i]!=null){for(intj=0;j<arr[i].length;++j){System.out.print(arr[i][j]+" ");}System.out.println();}else{System.out.println("null");}}}else{System.out.println("Array: null");}}publicstaticvoidmain(String[]args){// Esta declaraçao:String[][]array3por5=newString[3][5];// equivale ao seguinte conjunto de declaraçoes e expressoes:String[][]arrayXpor5=newString[3][];for(inti=0;i<3;i++){arrayXpor5[i]=newString[5];}// Só para comprovar:System.out.println("-- Array declarado como new String[3][5] --");imprimeArray(array3por5);System.out.println("-- Array declarado como new String[3][] e inicializado com new String[5] --");imprimeArray(arrayXpor5);}}
akumaldo
thingol:
O seguinte programa mostra a diferença entre a declaração "new String[3][5]" e "new String[3][]".
class TesteString {
private static void imprimeArray (String[][] arr) {
if (arr != null) {
for (int i = 0; i < arr.length; ++i) {
System.out.print ("Linha " + i + ": ");
if (arr[i] != null) {
for (int j = 0; j < arr[i].length; ++j) {
System.out.print (arr[i][j] + " ");
}
System.out.println();
} else {
System.out.println ("null");
}
}
} else {
System.out.println ("Array: null");
}
}
public static void main(String[] args) {
// Esta declaraçao:
String[][] array3por5 = new String[3][5];
// equivale ao seguinte conjunto de declaraçoes e expressoes:
String[][] arrayXpor5 = new String[3][];
for (int i = 0; i < 3; i++) {
arrayXpor5[i] = new String[5];
}
// Só para comprovar:
System.out.println ("-- Array declarado como new String[3][5] --");
imprimeArray (array3por5);
System.out.println ("-- Array declarado como new String[3][] e inicializado com new String[5] --");
imprimeArray (arrayXpor5);
}
}
Sim entendi thingol, mas no caso com array[x][] você deixa a segunda dimensão “livre”, a dimensão das colunas fica “livre” para você declarar posteriormente da maneira que você precisar, ficando mais flexivel não é?