【发布时间】:2014-11-17 20:21:06
【问题描述】:
是的,我有 3 个模型类,其中 3 个通过 SQL 从数据库(不同的表)获取数据并将数据保存到数组列表中。 现在我正在尝试将三个数组列表数据输入到表中。 问题是 2 个数组列表(关闭和关闭2)具有相同数量的数据,而 1 个数组列表只有 4 个值。我想要的是,如果 arraylist 中的日期与其他 arraylist 中的日期不匹配,它将在表中输出为 0。
这是由一个检查日期是否相等的 IF 语句完成的。
问题是arraylistclosure1只有4个值,它不会让遍历所有其他arraylist超过4次。
问题是,我怎样才能继续循环遍历 arraylists 关闭和关闭 2 并从头开始循环遍历 arraylist closing1?
try{
Model_Closing[] closing = Model_Closing.QueryWhere();
Model_Closing_DIV[] closing1 = Model_Closing_DIV.QueryWhere();
//Model_Closing_VisUnit[] closing2 = Model_Closing_VisUnit.QueryWhere();
model.setRowCount(0);
for(int i=0; i < closing.length; i++)
if (closing1[i].GetDate().equals(closing[i].GetDate())){
model.insertRow(i,new Object[]{date=closing[i].GetDate(),openingDollarBalance = closingDollarBalance,"NA",fundValue,dollarTransactionAmount,closing[i].GetNAV() * dollarTransactionAmount,visibleUnits,closingDollarBalance,closing[i].GetNAV(),dailyDivRate=closing1[i].GetDiv(),dailyDivDollars = dailyDivRate * accruedUnits,dailyDivRate / closing[i].GetNAV(), accruedDivDollars = accruedUnits * dailyDivRate,accruedUnits = visibleUnits + dailyDivUnits, });
}
else {
dailyDivRate = 0.0;
model.insertRow(i,new Object[]{date=closing[i].GetDate(),openingDollarBalance = closingDollarBalance,"NA",fundValue,dollarTransactionAmount,closing[i].GetNAV() * dollarTransactionAmount,visibleUnits,closingDollarBalance,closing[i].GetNAV(),dailyDivRate,dailyDivDollars = dailyDivRate * accruedUnits,dailyDivRate / closing[i].GetNAV(), accruedDivDollars = accruedUnits * dailyDivRate,accruedUnits = visibleUnits + dailyDivUnits, });
}
if (closingTable == null) {
closingTable = new JTable(model);
add(new JScrollPane(closingTable));
}
else{
closingTable.setModel(model);
}
}
catch(Exception ex){
JOptionPane.showMessageDialog(this,ex.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
}
【问题讨论】:
-
您似乎无法给出一个很好的解释,为什么不给出输入数据和预期结果的一个很好的样本呢?
-
如果您发现自己的问题不清楚,请努力澄清它。我会尝试破译它并给你一个答案,但我敢打赌,如果你成功地把问题说清楚,你就会自己到达那里。
-
你想要一个内循环一个循环内的循环吗?
-
也格式化你的代码。
-
在您的内部循环中,您正在递增 i 并执行