DÚVIDA Array "POLIDIMENCIONAL"

6 respostas
Gustavo_Santos

BOA TARDE GALERA !

Seguinte, por encresca que parivel ^^ eu tenho muita dificuldade com relação
aos arrays com mais de uma dimenção.

Por exemplo:

public class Teste {

	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]; // QUE ISSO ?!!?!? RSSS
                //line 7
	}

}

Which of the dollowing lines of code could be inserted at line 7 and still allow the code to compile. (Questão MasterExam )

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];

PERGUNTA:

b2 referência um array, que possue dois array, cada um desses possue 3 arrays, e
cada um desses possuem 2 arrays, e esses possuem tamanho igual a 2?

Não sei se isso aqui é uma dúvida comum, porém faço muita confusão com isso,
tem um jeito melhor de enxergar isso, desenhando igual questão de GC ? Alguém teria
paciência de explicar como isso funciona ? Errei essa questão !!! Não quero errar na prova !!

Grato a quem ajudar !!!

6 Respostas

ViniGodoy

Vamos fazer uma analogia.

Um array de uma dimensão seriam as páginas de um livro.
Para achar uma página, basta dizer seu número:
pagina = livro[10];

Um array de duas dimensões, seria como se esses livros estivessem numa prateleira. Para achar uma página, vc precisa indicar o número do livro (da esquerda para direita) e a página:

pagina = prateleira[3][10]; //Página 10 do terceiro livro da prateleira.

Um array de três dimensões seria como se houvessem uma estante, com várias prateleiras, uma em cima da outra. Para achar uma página de um livro, você teria que dizer em que linha a prateleira está, qual livro da prateleira vc quer, e que página:

pagina = estante[4][3][10]; //Página 10, do terceiro livro, da quarta prateleira.

Um array de quatro dimensões, seria como se vc tivesse numa biblioteca, com várias estantes. Para achar a página de um livro, você precisaria dizer em que estante o livro está:

pagina = biblioteca[2][4][3][10]; //Página 10, do terceiro livro, da quarta prateleira, que está na segunda estante.

E por aí vai…

deyvid

A resposta seria “A”?

romarcio

Tem uma coisa que não consigo entender:

Por exemplo a alternatica -> C.)b2[0][1][1] = b;

Ela gera erro de compilação, mas se eu alterar para -> b2[0][1][1] = b[1]; funciona legal.

Porém se eu fizer isso: b2[0][1][1][1] = b[1]; volta a gerar erro de compilação.

Gustavo_Santos

Acho que esse é o tipo de questão para se marcar, e se sobrar tempo tentar resolver !

A

testei ví q as alternativas corretas são A, B e E…

A e B? pq?

a E eu achei q fosse a correta mesmo…

ViniGodoy

A.) b2[1][1] = big;

CORRETA:
b2 tem o tipo short[][][][]
b2[1][0] tem o tipo short[][]
big é do tipo short[][]

Portanto, big pode ser associado a b2[][]

B.) b[1][0] = b3;
CORRETA. Atribuição de valor normal de array.
b é um array bidimensional. Portanto, b[1][0] pode receber um valor short normalmente.

C.) b2[0][1][1] = b;
INCORRETA.
b2[0][1][1] tem o tipo short[]
b é do tipo short[][]

D.) b2[0][2][1] = b[1][0];
INCORRETA
b2[0][2][1] tem o tipo short[]
b[1][0] tem o tipo short

E.) b2[1][1][0][1] = b[1][0];
CORRETA
b2[1][1][0][1] tem o tipo short
b[1][0] tem o tipo short

Criado 17 de setembro de 2010
Ultima resposta 20 de set. de 2010
Respostas 6
Participantes 5