Brincando com Arrays

int[][][] ib = { { null, { 33 } } , { { 21 }, null } };

Alguem poderia me dizer o que acontece com isso ? compila? não compila? se não compilar , poderia explicar o por que …

Ps. Sem jogar na IDE =)…

Abraços…

Compila!

Se endentar direitinho seu código pode ver que isso é perfeitamente possível. Mas isso não caiu na prova da 5.0 porque eles têm coisas mais escabrosas para perguntar.

int[][][] ib = 
{ 
    { 
        null, 
        { 33 } 
    } , 
    { 
        { 21 }, 
        null 
    } 
}; 

compila é o mesmo disso:

int[][][] array = new int[3][1][];

flw!

Na realidade em termos de instância, acho que o resultado equivalente é este:

     int[][][] array = new int[2][2][];

Veja pelo código edentado que o thingol postou, temos 2 chaves separadas por “,” (virgula) dentro das chaves mais externas. E que por sua vez possuem um array null e outro inicializado com x (33 e 21).

É não sei se caiu ou não, ainda nao fiz a prova =( hehehehe, mas pelo que dizem eles são capazes de qualquer coisa
aehueah
abraços
vlw galera…

Na minha prova não caiu esse tipo de coisa não… Na realidade não me lembro de ter caido alguma questão sobre arrays :lol:

Por falar em arrays…alguém pode me explicar como fazer um array de arrays…estou fazendo o curso FJ11-Java e Orientação à Objetos na Caelum…não tenho muita prática com java, e ana apostila tem um problema assim…se alguem puder me ajudar…eu agradeço.
Valeu amigos!!!


isso é um array de arrays: ou seja, um array bidimensinal. Você tem uma array de 3 posições que em cada posição tem outra array de duas posições.
Você usa isso passando no primeiro colchetes a posição dentro da 1a array que você quer acessar, e no segundo colchete qual item dentro da array contida na posição informada vc quer recuperar.

   [] -> [][]
   [] -> [][]
   [] -> [][]


Nesse desenho que fiz, no primeiro colchetes você vai ter a posição na vertical, e no segundo colchete a posição na array que está na horizontal... perceba que na array da vertical você armazena ponteiros (endereços de memória) da outra array.

Você pode também ter um array de Objects, mas daí você vai precisar inicializar cada posição com [code]new int[2];[/code] pra cada posição, uma vez que arrays de Object são inicializados com [i]null[/i].

Espero ter ajudado. :)

isso é um array de arrays: ou seja, um array bidimensinal. Você tem uma array de 3 posições que em cada posição tem outra array de duas posições.
Você usa isso passando no primeiro colchetes a posição dentro da 1a array que você quer acessar, e no segundo colchete qual item dentro da array contida na posição informada vc quer recuperar.

[] -> [][]
[] -> [][]
[] -> [][]

Nesse desenho que fiz, no primeiro colchetes você vai ter a posição na vertical, e no segundo colchete a posição na array que está na horizontal… perceba que na array da vertical você armazena ponteiros (endereços de memória) da outra array.

Você pode também ter um array de Objects, mas daí você vai precisar inicializar cada posição com new int[2]; pra cada posição, uma vez que arrays de Object são inicializados com null.

Espero ter ajudado. :slight_smile: