Programación Básica en Java

Hola... Mi pregunta es de programación básica..
Necesito declarar es un programa alrededor de 500 variables con formato similar...
Quisiera saber si hay alguna función que me ahorre el tiempo de escribirlas todas para declararlas. El formato de las variables es:
xvariable[0 0]
xvariable[0 1]
xvariable[0 2]
xvariable[1 0]
xvariable[1 1]
xvariable[1 2]
xvariable[2 0]
...
xvariable[200 0]
xvariable[200 1]
xvariable[200 2]
Quiero saber si hay función para hacer eso más practico. Y si si, como seria el código... Gracias, espero respuesta :)

1 Respuesta

Respuesta
1
En vez de definir todas las variables, create un Hashtable para meter tus variables:
java.util.Hashtable hash = new java.util.Hashtable();
for (int ix=0;ix<200;ix++){
    for (int ix2=0;ix2<3;ix2++){
//Creo el elemento del hash y le asigno un String como valor.

       hash.put("xvariable[" + ix + " " + ix2 + "]", "[" + ix + " " + ix2 + "]" );

    }

}
Ahora, en cualquier parte del programa, puedes obtener el valor de va variable con
 hash.get("xvariable[50 1]");
No olvides que el hash almacena objetos, por lo que al recuperar un elemento te devuelve un objeto, que necesitarás convertir a la clase que desees. Por ejemplo, si lo que metes en el hash son strings, necesitarás que el código haga lo siguiente:
String miValor = (String)hash.get("xvariable[23 0]");
Espero que te sea de utilidad. Un saludo y no olvides valorar mi respuesta:
Carlos.
Gracias por la respuesta, eso lo intentare hacer al rato...
Aprovechando, hago la pregunta sobre lo mismo...
Si quiero que me muestre el resultado del conteo de todas las variables en pantalla ¿cómo muestro todas...?
Y si quiero que solo muestre solo las que se encontraron al menos una vez en el documento de información... ¿cómo debo especificar...?
Gracias... claro que no olvidare valorar la respuesta
Para mostrar las variables y su valor hay que usar un bucle para recorrer el hash:
String key;
String valor;
java.util.Enumeration keys = hash.keys(); //Una enumeracion con las claves del hash (nombres de las variables)
while (keys.hasMoreElements()){
   key = (String)keys.nextElement(); //obtengo el nombre de la variable
   valor = (String)hash.get(key); //obtengo el valor de la variable
   System.out.println("La variable " + key + " tiene el valor " + valor);

}
En cuanto a lo que me comentas de que sólo muestre las que se encontraron una vez en el documento de información, no se a qué te refieres con documento de información. Si me lo explicas quizás te pueda ayudar.
Holap de new...
El programa básicamente lo que hace es leer un documento con extensión .txt y cuenta cuantas veces se encuentra cada variable en el documento...
La salida la veo así...
xvariable[0 0] se presento 56 veces
xvariable[0 1] se presento 2 veces
xvariable[0 2] se presento 230 veces
xvariable[1 0] se presento 20 veces
xvariable[1 1] se presento 10 veces
xvariable[1 2] se presento 0 veces
xvariable[2 0] se presento 99 veces
Hay eventos que no se presentan ni una sola ves... entonces no tiene caso que aparezcan. Los que si se repiten o aparecen al menos una ves si deben aparecer...
Como hago esop... es la ultima y nos vamos...
Gracias
Lo que puedes hacer es, antes de hacer el System. Out. Println(), comprobar el valor de la variable. Imagino que guardas un String con el valor de las veces que se repite. En ese caso la comprobación quedaría de la siguiente manera:
String key;
String valor;
java.util.Enumeration keys = hash.keys(); //Una enumeracion con las claves del hash (nombres de las variables)
while (keys.hasMoreElements()){
    key = (String)keys.nextElement(); //obtengo el nombre de la variable
    valor = (String)hash.get(key); //obtengo el valor de la variable

    if (!valor.equals("0")){
        System.out.println("La variable " + key + " tiene el valor " + valor);
    }

}
Te agradezco mucho mi buen Carlos... luego luego se ve cuando alguien sabe sobre el tema...
Pues por el momento eso es todo. Ya habrán más dudas y ya estaremos nuevamente en contacto.
Excelente puntuación a mi criterio, nos vemos pronto...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas