Hola, estoy empezando a aprender Java y de momento no tengo categoría ni de novato xD.
El caso es que para ir practicando lo poquito que llevo aprendido (aprendido, y no del todo entendido...), se me ha ocurrido desempolvar unos ejercicios prácticos que tengo de un curso anterior que hice de JavaScript, para intentar hacerlos ahora en Java.
Pues el primero de todos, ya se me ha atragantado :o
Os publico el enunciado:
1) Realizar una serie de operaciones con la siguiente matriz:
var valores = [true, 5, false, "hola", "adios", 2]
a) Concatenar ambas cadenas y presentar resultado
b) Comparar los números entre sí con todos los operadores de comparación.
c) Comparar todos los valores de la matriz entre sí de dos en dos y ver el resultado
d) Realizar diferentes operaciones aritméticas con los valores numéricos
En JavaScript no hay mayor problema ya que se pueden mezclar tipos de datos en una matriz. Pero no en Java....
Bueno, pensando como resolver esto, he probado creando un set a partir de 3 matrices con distintos tipos de datos. Es lo único que se me ha ocurrido para crear algo similar a una matriz como esa.
Tal como lo he hecho, los datos/objetos no quedan en el mismo orden que el propuesto en el enunciado, pero eso es irrelevante.
El caso es que consigo juntarlos y mostrarlos uno a uno en pantalla.
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.Arrays;
import java.util.Iterator;
public class OperacionesMatriz{
public static void main (String[] args){
ArrayList<Set> matrizVariada = new ArrayList <Set>();
//Creacion de matriz con datos Boolean
Boolean [] matrizBool = {true, false};
HashSet<Boolean> datosBool = new HashSet<Boolean> (Arrays.asList(matrizBool));
//Creacion de matriz con Integer
Integer [] matrizInt = {5, 2};
HashSet<Integer> datosInt = new HashSet<Integer> (Arrays.asList(matrizInt));
//Creacion de matriz de Strings
String [] matrizString = {"hola", "adios"};
HashSet<String> datosString = new HashSet<String> (Arrays.asList(matrizString));
//Juntamos las tres matrices
matrizVariada.add(datosBool); matrizVariada.add(datosInt); matrizVariada.add(datosString);
//Recorremos y mostramos en pantalla para comprobar resultado
for (Set tmp: matrizVariada){
Iterator it = tmp.iterator();
int i=0;
while (it.hasNext()){
System.out.println("i: " + (i++) + " - " + it.next());
}
}
}
}
Ahora mi desconocimiento plantea estas dudas.
- ¿Puedo operar con estos objetos tras haberlos unidos de este modo?
- ¿Puedo hacer que al recorrer el set, el programa distinga si el objeto es (o era) un Integer, un String, un Boolean para almacenarlos en distintas variables según el tipo y luego operar con ellas (concatenar, comparar, etc..)?
- ¿Debería de haberlos juntado de otra manera para poder operar con ellos?
A la espera quedo de vuestros sabios consejos. Gracias y un saludo. ;)