2014-09-23 72 views
0

對我有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); 
    } 
+0

看起來你不能給出一個很好的解釋,爲什麼不給出一個好的樣本輸入數據和預期的結果? – JotaBe 2014-09-23 14:56:05

+0

如果您認識到自己問題不明確,請努力澄清。我會盡力破譯它並給你一個答案,但我敢打賭,如果你能夠成功地明確問題,你就會自己到達那裏。 – 2014-09-23 14:56:42

+0

你想要一個內循環循環內循環? – brso05 2014-09-23 14:57:09

回答

0

的問題是,如何我還可以繼續通過的ArrayList循環 閉閉2,並開始通過ArrayList的closing1 從begining循環?

我猜你需要的是:

closing1[i%closing1.length].GetDate()== closing[i].GetDate() 
0

在這個問題的另一種解讀,

Date date1 = (i < closing1.size()) ? closing1[i].GetDate() : zero; 
date1 == closing[i].getDate(); 

其中zero是什麼日期是將 「表輸出爲0」

+0

我想我需要的是一個嵌套循環?它將檢查條件,如果closing1.GetDate == to closing.GetDate ...如果它輸出的值,如果沒有放0表中。因爲只有4個值在closing1它必須再次循環比較日期再次關閉 – user3266312 2014-09-24 08:36:02