Quais das seguintes alternativas poderão ser inseridas após //insert code here
public class Array1 {
public static void main(String[] args) {
short b[][] = new short[4][4];
short big[][] = new short[2][2];
short b3 = 8;
short b2[][][][] = new short[2][3][2][2];
//insert code here
}
}
/*
* A b2[1][1] = big;
* B b[1][0] = b3;
* C b2[0][1][1] = b;
* D b2[0][2][1] = b[1][0];
* E b2[1][1][0][1] = b[1][0];
* F b2[1][1] = b;
*
*/
as alternativas correta são a, b, e, f
existe alguma fórmula para saber como manipular arrays acima de 3 dimensões, por exemplo não entendi a letra E
editando: sei que um item de um array de 4 dimensões pode receber um de 2 dimensões, mas por exemplo se fosse um array de 5 dimensões como funcionaria???..
a) b2[1][1] = big; (o array big tem 2 dimensões. Então, qualquer expressão da forma b2[x][y] = big, com x e y dentro dos limites, pode ser atribuída à b2[x][y])
b) b[1][0] = b3; (b[x][y] é um único byte. Logo, como b3 também é um único byte, essa atribuição está correta)
c) b2[0][1][1] = b; (b2[x][y][z] armazena um outro array unidimensional. Como b é um array bidimensional, esta atribuição está incorreta)
d) b2[0][2][1] = b[1][0]; (b2[x][y][z] armazena um array unidimensional. b[1][0] é somente um número (dimensão 0), logo, não é valido)
e) b2[1][1][0][1] = b[1][0]; (b2[x][y][z][t] armazena somente um número. Como b[1][0] é um número (e não um array), essa atribuição é valida!)
f) b2[1][1] = b; (b2[x][y] armazena um array bidimensional. b é um array bidimensional, logo, esta atribuição é válida também!)
A regra prática é: vc olha quantas dimensões falta no array. Só é possível atribuir um outro array com essa dimensão restante. Caso a dimensão restante for 0, só é possível atribuir um único valor daquele tipo (e não um outro array).
Deixa eu aproveitar o tópico, eu tb tenho dificuldade nessa parte de array, bidimensional e unidimensional até agora foi a única parte do livro que não entendi bem, tem como vcs me ajudarem?
Rapaz Thiago eu vou até ler essa parte de novo de arrays bidimensionais pq na pratica nunca usei então nem tenho idéia de como funciona, pra mim isso:
int a[][][]; não era unidimensional, não sei se estou errado mas pelo comentario de voces é ne ou nao? Entao nao sei como funciona as iterações nesses arrays e tals, mas eu vou da uma lida d novo, e com ajuda de vcs espero entender ehehe.