Preencher Matriz Java

É possível preencher uma matriz java de forma que a primeira coluna (x4) seja de Strings e as demais (x4) sejam ‘‘Doubles’’?

Obs.: Novato em Java

Se for possível me dar um exemplo de código, pois nem sei por onde começar. Não consigo entender o tutorial que estou acompanhando.

Object[][] matriz = new Object[][] {
        new Object[] { "String 1", 1.0, 5.1,  9.2 },
        new Object[] { "String 2", 2.0, 6.1, 10.2 },
        new Object[] { "String 3", 3.0, 7.1, 11.2 },
        new Object[] { "String 4", 4.0, 8.1, 12.2 },
};
1 curtida

Massa. Então ao invés de colocar tipo ''String[][]" eu uso esse ‘‘Object’’, nele eu posso ler os dois tipos de dados, certo?

A classe Object é a superclasse de qualquer classe Java.
Então, quando você declara um array de Object, os elementos podem ser do tipo Object ou de qualquer classe derivada.
String e Double também são classes, mas o Double pode ser convertido “automagicamente” para o tipo primitivo double através do auto-unboxing, então basta você fazer um cast para o tipo de dado que você sabe que está armazenado naquela posição:

String valor00 = (String) matriz[0][0];
double valor01 = (Double) matriz[0][1];
double valor02 = (Double) matriz[0][2];
double valor03 = (Double) matriz[0][3];
1 curtida

Certo, acho que entendi. Vou tentar fazer isso. Muito obrigado :wink:

Entendi o cast, mas e quando usando o Scanner? É possível? Como diferenciar os tipos?

Meu código abaixo:

// matriz de strings e inteiros
	Object[][] letrasNumeros = new Object[3][3];
	
	// preenchendo matriz
	Scanner scan = new Scanner(System.in);
	for(int i=0; i<letrasNumeros.length; i++) {
		for(int j=0; j<letrasNumeros.length; j++) {
			System.out.print("Digite um nome ou uma letra: ");
			letrasNumeros[i][j] = scan.nextInt(); // <- o que colocar no lugar do NEXT INT pra ler tbm Strings?
		}
	}

Hahahaha… Olha o que fiz!

letrasNumeros[i][j] = (Object)scan.next();

Aí deu certo! Tá certo isso?? hahaha… Cara, brigadão, desculpa o incômodo aí :sweat_smile:

Abraço!

Leia a documentação da classe Scanner.

1 curtida

Sim senhor! Recomenda quem sabe, segue a dica quem tem juízo :wink: