Ajuda com programa java

bom, primeiro gostaria de dizer um oi para todos, pois sou novo neste forum, o meu problema é o seguinte:
Preciso criar uma matriz, de 2x3, e fazer com que o usuario digite os numeros e depois mostre quantos numeros pares e impares tem, eu fiz o seguinte código:

[code] /*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package javaapplication4;

import javax.swing.JOptionPane;

/**
*

  • @author usuario
    */
    public class Main {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {
      // TODO code application logic here
      {

       int par = 0;
       int impar = 0;
       int valores[][] = new int[2][2];
       for (int linha = 0; linha <= 1; linha++) {
           for (int coluna = 0; coluna <= 2; coluna++) {
               valores[linha][coluna] = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor [" + linha + "] [" + coluna + "] :"));
           }
       }
       for (int i = 0; i < valores.length; i++) {
      
           
           if (valores[i][i] % 2 == 0) {
               par = par + 1;
           } else {
               impar = impar + 1;
           }
       }
       System.out.println("a quantidade de numeros pares é:" + par);
       System.out.println("a quantidade de numeros impares é:" + impar);
      

      }
      }
      }
      [/code]

e quando executo, ele mostra a seguinte mensagem:

run: O valor na posição0é:[I@167d940 O valor na posição1é:[I@e83912 a quantidade de numeros pares é:0 a quantidade de numeros impares é:2 CONSTRUÍDO COM SUCESSO (tempo total: 7 segundos)

Alguem poderia me ajudar e mostrar o que estou fazendo de errado?
estou usando o netbeans

Este [b][I@167d940[/b] é o endereço de memória.
Você precisa imprimir uma posição do array e não o objeto.

Provavelmente você esta fazendo o seguinte:

int[] valor = new int[2];

valor[0] = 1;
valor[1] = 2;

System.out.println(valor);

Onde deveria ser mostrado:

for (int i=0; i< valor.length; i++) {
System.out.println(valor[i]);
}

Agora, para percorrer a sua matriz, você deverá fazer 2 for.

for (int i = 0; i < valores.length; i++) {

	for (int c = 0; c < valores[i].length; c++) {           
                
		if (valores[i][c] % 2 == 0) {   
			par = par + 1;   
                } else {   
			impar = impar + 1;   
                }   
            }
	}

Desta forma, você percorrerá as linhas e colunas de sua matriz.

Obs.: Não testei este outro for. Pode haver erros.

Abraço!

Alem disso dito em cima, voce disse que sua matriz precisa ser 2 x 3
E declarou a mesma [2][2] ??
Isso faz com que voce percorra posiçoes nao iniciadas no seu for, causando problemas de lixo em variaveis…

Abraços

[quote=Tiberio]Alem disso dito em cima, voce disse que sua matriz precisa ser 2 x 3
E declarou a mesma [2][2] ??
Isso faz com que voce percorra posiçoes nao iniciadas no seu for, causando problemas de lixo em variaveis…

Abraços[/quote]

usei 2x2 para ficar mais facil de testar.

Assim que chegar em casa irei testar com esses 2 “fors”