我有一个要更新的数组列表,但它给出了“索引超出范围”错误。我似乎找不到错误。需要一双清新的眼睛。
Global.variables.add(new String[]{(String) jComboBox1.getSelectedItem(), jTextField2.getText(), jTextField3.getText(), (String) jComboBox2.getSelectedItem(), "Reservado"});
public void generateRandom() {
for (int i = 0; i < Global.variables.size()-1; i++) {
System.out.println("Searching "+Global.variables.get(i)[0]+" in temp "+i);
for (int j = 0; j < temp.size()-1; j++) {
System.out.println("Testing "+Global.variables.get(i)[0]+" with "+temp.get(j)+" "+j);
if (Global.variables.get(i)[0].equals(temp.get(j))) {
System.out.println("FOUND!");
Global.variables.get(i)[4] = String.valueOf(Double.parseDouble(Global.variables.get(i)[1]) + mt.nextGaussian() * Double.parseDouble(Global.variables.get(i)[2]));
System.out.println(Global.variables.get(i)[0]+" = "+Global.variables.get(i)[4]);
}
}
}
}
全局变量包含(名称、中位数、标准差、分布、“保留”);temp 包含一些变量的名称。所以我尝试遍历变量列表,看看它们是否在temp中并更新“保留”字段......但是:它给了我错误:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 4
可能很容易,但我似乎无法找到它是什么。
已解决:我在另一个地方初始化 Global.variables,所以有些变量实际上有第 5 个元素,而另一些则没有。谢谢 :)