gpt4 book ai didi

java - 有没有一种方法可以将数组名称作为字符串获取,以便我可以在程序中调用正确的数组名称?

转载 作者:行者123 更新时间:2023-12-02 00:19:26 26 4
gpt4 key购买 nike

我需要能够搜索多个二维数组并搜索数组中的数据并将其与调用该方法时放入该方法的数据进行比较。我尝试使用 .getClass().getSimpleName() 但是它只返回 int[][] 我正在搜索的所有数组都是这种类型,所以它不会帮助我区分它们。

我正在使用这一系列代码来确定要调用的正确数组:

 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"));
}
}
}
}

我想要发生的是将 tonChart 设置为包含可能的二维数组的字符串之一,以进行搜索。但是,.getClass().getSimpleName 永远不会设置为 int[][] 之外的任何内容,并导致程序始终转向每个语句末尾的 else 语句三重嵌套循环。

有什么建议吗?

以下是调用的数组的示例:

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}};

最佳答案

您可以将数组放入 map 中:Map<String, int[][]>

然后您可以使用正确的对填充您的 map :map.put("TONS_09_78", TONS_09_78) ;

你的一系列 if 变成(+一些空处理):

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

现在您的设计看起来很可疑,可能有一种更好的方法来首先声明您的数组,以便更轻松地处理它们。

关于java - 有没有一种方法可以将数组名称作为字符串获取,以便我可以在程序中调用正确的数组名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11314260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com