我编辑我的代码来解决最后一个问题,但现在当我正在执行 System.out.println(uns.get(0)); 时我得到 NULL 但 System.out.println(uns.get(0));这是我的结果!!!哎呀
Ok I SOLVE THE PROB NOW i'm adding uns=new ArrayList(10);
for (int ii = 0; ii < 10; ii++) {
uns.add(null);
} to Construct
/image/9rNTa.png
我编辑这些说明
if(i==0)
{ uns.add(i,u);
}
if(i==1)
{
uns.add(i,u);
}
i++;
感谢大家
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
int ligneNom = jTable1.getSelectedRow();
int colonneNom = jTable1.getSelectedColumn();
DefaultTableModel model = (DefaultTableModel) jTable2.getModel();
row = new Vector();
if(colonneNom==0)
{
try {
int numUnite=Integer.parseInt(jTable1 .getValueAt(ligneNom, 0).toString());
operation3 o3=new operation3();
uns=new ArrayList(10);
for (int ii = 0; ii < 10; ii++) {
uns.add(null);
}
System.out.println(numUnite);
u=o3.getUnite(numUnite);
System.out.print(u);
uns.add(i,u);
System.out.println(uns.get(0));
System.out.println(uns.get(1));
i++;
row.add( jTable1 .getValueAt(ligneNom, 0));
row.add( jTable1 .getValueAt(ligneNom, 1));
model.addRow(row);
jTable1.clearSelection();
} catch (NamingException ex) {
Logger.getLogger(employeihm.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
最佳答案
你的误解在这里:
uns=new ArrayList(10);
这将创建一个列表,其容量为 10 ...但最初包含零个元素。
然后你这样称呼:
uns.add(i,u)
我们可以从异常消息中推断出i
是1
。当然,1
超出了列表的当前可索引范围,因此您会得到该异常。
如果您的意图是 uns
应使用 10 个元素进行初始化,那么您需要在创建数组后“填充”该数组;例如
for (int ii = 0; ii < 10; ii++) {
uns.add(someValue);
}
(有第 3 方库方法将创建一个填充给定值的列表。但是对于这么简单的东西我不会去寻找......)
关于java - ArrayList java.lang.IndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22939154/