Matriz e sua declaração e inicialização

09/04/2009

0

Pessoal como sempre fico surpreso com essa linguagem.... Agora eu to fazendo um projeto de matriz adjacente. E precisava fazer a inicialização dela desse jeito: 000 000 000 Ai fiz o codigo e seu teste. Funcionou corretamente!!! Mas a minha duvida é porque java não aceita essa declaração e inicialização de matriz?

 int [][]matriz = new int[3][];

Eu fiz estes dois codigos abaixo para melhorar o entendimento. O primeiro funcionou que é uma beleza!

int [][]matriz = new int[3][3]; 
		
		for(int i=0; i<matriz.length; i++){
			for(int j=0; j<matriz[i].length; j++){
				matriz[i][j]=1;
				System.out.print(matriz[0][j]);
			}
			System.out.println(matriz[i][0]);
		}

E o segundo deu uma exception muito louca. NullPointerException

int [][]matriz = new int[2][];
		
		for(int i=0; i<matriz.length; i++){
			for(int j=0; j<matriz[i].length; j++){
				matriz[i][j]=5;
				System.out.print(matriz[0][j]);
			}
			System.out.println(matriz[i][0]);
		}

Alguem tem alguma ideia disso? grato!!!
Sniffer007

Sniffer007

Responder

Post mais votado

09/04/2009

Oi, inicializacao seria algo como
int [][]matriz = new int[][] { {0, 0, 0}, {0, 0, 0}, {0, 0, 0} };
ou abreviado
int [][]matriz = { {0, 0, 0}, {0, 0, 0}, {0, 0, 0} };
O NullPointer é devido ao fato de voce nao ter inicializado a matriz[0]. Lembre-se que no Java näo existe matriz bidimensional e sim um array de um array.
int [][]matriz = new int[2][];
equivale a
int [][]matriz = new int[][] { null, null};
Deveria ter feito assim
int[][] matriz = new int[2][3]; // os 6 recebem o valor inicial 0
ou
        int [][]matriz = new int[2][];
        
        for(int i=0; i<matriz.length; i++){
            matriz[i] = new int[3]; // ou, por exemplo, = { i, i+1, i+2 };
           for(int j=0; j<matriz[i].length; j++){
              matriz[i][j]=5;
              System.out.print(matriz[0][j]);
           }
           System.out.println(matriz[i][0]);
        }
ok? []]]

Carlos Heuberger

Carlos Heuberger
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar