對我有3個模型類,其中3個通過SQL從數據庫(不同的表)獲取數據,並將數據保存到數組列表中。 現在我試圖將三個數組列表數據輸入到表中。 問題是2個數組列表(關閉和關閉2)獲得的數據量相同,1個數組列表只有4個值。我想要的是,如果來自arraylist的日期與其他arraylist中的日期不匹配,它將在表格中輸出爲0。如何使一個數組列表循環自我,而在一個循環?
它是由IF語句完成的,該語句檢查日期是否相等。
問題是arraylist closing1只有4個值,它不會讓所有其他數組列表循環超過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);
}
看起來你不能給出一個很好的解釋,爲什麼不給出一個好的樣本輸入數據和預期的結果? – JotaBe 2014-09-23 14:56:05
如果您認識到自己問題不明確,請努力澄清。我會盡力破譯它並給你一個答案,但我敢打賭,如果你能夠成功地明確問題,你就會自己到達那裏。 – 2014-09-23 14:56:42
你想要一個內循環循環內循環? – brso05 2014-09-23 14:57:09