/ / ¿Hay alguna forma de obtener el nombre del arreglo como una cadena para que pueda llamar al correcto en mi programa? - java, cadena, matriz multidimensional, bucles anidados

¿Hay alguna forma de obtener el nombre del arreglo como una cadena para que pueda llamar al correcto en mi programa? - java, cadena, matriz multidimensional, bucles anidados

Necesito poder buscar en múltiples matrices 2D y buscar los datos en la matriz y compararlos con los datos que se ponen en el método cuando se llama. Traté de usar .getClass().getSimpleName() sin embargo eso solo devuelve int[][] Todos los arreglos que estoy buscando son de este tipo, por lo que no me ayudará a distinguirlos.

Estoy usando esta serie de código para determinar la matriz adecuada para llamar:

 public void tempSelection78 (int fRate, int wbTemp, int rcTons, int a, int r)
{
setTitle(TONS_05_78.getClass().getSimpleName());
for (int model = 0; model < 7; model++)
{
String tonChart = tons78FCharts[model];
for (int col = 0; col < 9; col++)
{
for (int row = 0; row < 8; row++)
{
int t = 0;

if (tonChart.equals(TONS_03_78.getClass().getSimpleName()))
{
t = TONS_03_78[col][row];
}
if (tonChart.equals(TONS_04_78.getClass().getSimpleName()))
{
t = TONS_04_78[col][row];
}
if (tonChart.equals(TONS_05_78.getClass().getSimpleName()))
{
t = TONS_05_78[col][row];
}
if (tonChart.equals(TONS_07_78.getClass().getSimpleName()))
{
t = TONS_07_78[col][row];
}
if (tonChart.equals(TONS_09_78.getClass().getSimpleName()))
{
t = TONS_09_78[col][row];
}
if (tonChart.equals(TONS_11_78.getClass().getSimpleName()))
{
t = TONS_11_78[col][row];
}
if (tonChart.equals(TONS_15_78.getClass().getSimpleName()))
{
t = TONS_15_78[col][row];
}
if (rcTons == t)
{
tableButton = new JButton(new ImageIcon(tablesFor78[model], tablesFor78[model]));
break;
}
else
{
tableButton = new JButton(new ImageIcon("CANNOT_FIND_MODEL.GIF", "SCROLL"));
}
}
}
}
for (int model = 0; model < 7; model++)
{
String flowChart = flow78FCharts[model];
for (int col = 0; col < 9; col++)
{
for (int row = 0; row < 8; row++)
{
int t = 0;
if (flowChart.equals(FLOW_03_78.getClass().getSimpleName()))
{
t = FLOW_03_78[col][row];
}
if (flowChart.equals(FLOW_04_78.getClass().getSimpleName()))
{
t = FLOW_04_78[col][row];
}
if (flowChart.equals(FLOW_05_78.getClass().getSimpleName()))
{
t = FLOW_05_78[col][row];
}
if (flowChart.equals(FLOW_07_78.getClass().getSimpleName()))
{
t = FLOW_07_78[col][row];
}
if (flowChart.equals(FLOW_09_78.getClass().getSimpleName()))
{
t = FLOW_09_78[col][row];
}
if (flowChart.equals(FLOW_11_78.getClass().getSimpleName()))
{
t = FLOW_11_78[col][row];
}
if (flowChart.equals(FLOW_15_78.getClass().getSimpleName()))
{
t = FLOW_15_78[col][row];
}
if (fRate == t)
{
tableButton = new JButton(new ImageIcon(tablesFor78[model], tablesFor78[model]));
break;
}
else
{
tableButton = new JButton(new ImageIcon("CANNOT_FIND_MODEL.GIF", "SCROLL"));
}
}
}
}

lo que quiero que suceda es el tonChart Establezca una de las cadenas que contienen los posibles arreglos 2d para buscar a través de los cuales lo hace. Sin embargo, el .getClass().getSimpleName nunca se pone a nada que no sea int[][] y hace que el programa se desvíe siempre a la instrucción else al final de cada triple bucle anidado.

¿alguna sugerencia?

Aquí hay un ejemplo de los arrays que se llaman:

public final int [][] TONS_03_78 =
{{27, 32, 37, 41, 45, 48, -1, -1, -1},
{-1, 41, 45, 50, 55, 59, 64, 68, 70},
{-1, 49, 55, 60, 65, 70, 75, 80, 85},
{-1, -1, 64, 70, 75, 81, 86, 91, 97},
{-1, -1, -1, 80, 86, 92, 98, 103, 109},
{-1, -1, -1, -1, 97, 103, 109, 116, 122},
{-1, -1, -1, -1, -1, 114, 122, 128, 135},
{-1, -1, -1, -1, -1, -1, -1, -1, -1}};
public final int [][] FLOW_03_78 =
{{205, 160, 137, 122, 112, 103, -1, -1, -1},
{-1, 203, 170, 150, 137, 127, 120, 113, 105},
{-1, 245, 205, 180, 163, 150, 140, 133, 127},
{-1, -1, 240, 210, 188, 173, 162, 152, 145},
{-1, -1, -1, 240, 215, 197, 183, 172, 163},
{-1, -1, -1, -1, 242, 220, 205, 193, 183},
{-1, -1, -1, -1, -1, 245, 228, 213, 202},
{-1, -1, -1, -1, -1, -1, -1, -1, -1}};

Respuestas

0 para la respuesta № 1

Yo cambiaría tu paradigma.

No estoy completamente seguro de cuál es su problema específicoEs decir, el siguiente enfoque podría cambiar, pero si yo fuera usted, construiría una clase o una estructura que contenga una matriz bidimensional y luego algún tipo de identificador (puede ser una cadena o un int, o un enum, o lo que quieras).

Ese tipo de enfoque no solo reducirá el tamaño de su código, sino que lo hará más legible para usted y para nosotros.


3 para la respuesta № 2

Podrías poner tus arrays en un mapa: Map<String, int[][]>

Luego puedes poblar tu mapa con los pares correctos: map.put("TONS_09_78", TONS_09_78);

Y tu serie de si se convierte en (+ algo de manejo nulo):

return map.get(tonChart)[col][row];

Ahora su diseño parece sospechoso y podría haber una mejor manera de declarar sus arreglos en primer lugar que facilitarían su manejo.