Array Bidimencional X Vector

7 respostas
M

Tenho uma dúvida bem simples (eu acho que é simples):

String dados[][] e String[][] dados são a mesma coisa ou não?

Se não forem, o que é cada um?

Desde já agradeço a todos que me ajudarem.

7 Respostas

Nicolas_Fernandes

Olá, Macksuel!

Sim, são a mesma coisa. O que muda é a forma de declaração!

[]'s

M

Então em metodos que passam como atributo a forma dois (String[][] dados) eu posso passar um na forma um (String dados[][])?

Nicolas_Fernandes

Sim!

Faça o teste em algum compilador Java, e assim você comprovará o resultado!

[]'s

Nicolas_Fernandes

Teste assim:

public class Main {

   public static void main(String[] args) {
   
      String[][] aa = new String[5][5];
      String bb[][] = new String[5][5];

      if (aa.equals(bb)) {

         System.out.println("Foi!");
      }

      
   }
}
Hellmanss
Nicolas Fernandes:
Teste assim:
public class Main {

   public static void main(String[] args) {
   
      String[][] aa = new String[5][5];
      String bb[][] = new String[5][5];

      if (aa.equals(bb)) {

         System.out.println("Foi!");
      }

      
   }
}

O que vc quiz dizer com teu código? Chegasse a rodar? rsrs
Simplesmente irá rodar e não imprimir notinhg... :lol: :lol:

ViniGodoy

Por convenção.

Muita gente defende que é mais claro usar o [][] perto do tipo de dado, já que é ao tipo que ele se refere.

E
// O programa a seguir prova que você pode 
// Entretanto, é meio sinistro você declarar os colchetes antes e depois da variável, ou pior ainda, antes
// e depois da declaração do método. 

class SintaxeArrayArray {

    // recomendado
    String[][] retorna1 () {
        return new String[10][20];
    }
    // sinistro - você acha que o método retorna uma String[], não uma String[][]
    String[] retorna2 ()[] {
        return new String[10][20];
    }
    // sinistro - você acha que o método retorna uma String, não uma String[][]
    String retorna3 ()[][] {
        return new String[10][20];
    }

    public static void main (String[] args) {
        SintaxeArrayArray saa = new SintaxeArrayArray();
        String [][]aa1 = saa.retorna1();
        String []aa2[] = saa.retorna2();
        String aa3[][] = saa.retorna3();
        System.out.println (aa1.getClass().getName()); // imprime "[[Ljava.lang.String;"
        System.out.println (aa2.getClass().getName()); // imprime "[[Ljava.lang.String;"
        System.out.println (aa3.getClass().getName()); // imprime "[[Ljava.lang.String;"
        System.out.println (aa1.getClass() == aa2.getClass() && aa2.getClass() == aa3.getClass()); // imprime "true"
    }
}
Criado 18 de setembro de 2009
Ultima resposta 18 de set. de 2009
Respostas 7
Participantes 5