2013-10-01 161 views
0

我要創建學生在學院類的ArrayList,ArrayList中的每個對象包括姓名,studentid,地址和quizscore如何在請求用戶輸入後繼續執行程序?

我在測試類的工作,我需要我的程序繼續運行創造large arrayList,因此我可以執行諸如查找查找學生數或查找最高分數等命令。

我已經創建了這樣的方法,並且在我的測試程序類中,我實現了Scanner以從鍵盤獲取命令,但是在它執行了命令後,即添加了學生,它終止了程序,因此當我想回顧剛纔的添加(例如「find」)程序已經終止,新創建的對象不見​​了。

我可以對我的測試儀類做些什麼來保持它「運行」並允許數組列表增長。

+2

發佈您的代碼和問題 –

+1

請發佈代碼片段的問題。從你的問題,我明白,命令輸入代碼應該在一個循環中,並且應該使用一個哨兵出來循環。 – Kishore

+0

我們不可能在沒有看到您的代碼的情況下提供幫助。否則,我們所能做的就是猜測問題所在...... – jahroy

回答

-2

爲您的ArrayList使用一個私有實例變量,以便您的程序在您的方法終止後會跟蹤它。

您可以像這樣把它聲明:

private ArrayList nameOfYourList; 
+0

問題是一旦程序終止,就保留這些對象。 –

0

的問題是不明確的。如果你想保持陣列有程序運行。最好是一個多線程的程序,其中一個線程永遠不會結束。但如果你想堅持添加數據庫。

1

要在程序執行之間保留數據,您需要將其保存。通常的方法是以某種格式將其寫入文件。如果ArrayList中的對象是可串行化的,您可以簡單地將整個陣列寫入ObjectOutputStream,寫入FileOutputStream進行保存,然後在下一個程序開始時通過在FileInputStream周圍圍繞ObjectInputStream進行恢復。

在網絡上搜索Java數據持久性找到許多持久化數據的方法,包括我的建議和大量教程代碼的替代方法。

0

如果我理解正確你的問題,我的猜測是正確的:

爲了讓你的程序運行的同時可以循環使用,直到你的命令將等於「跳槽」或別的東西,比如

while(command.compareTo("quit")!=0) { 
     //your code here 
} 

這樣你的程序就會運行,直到你輸入quit來終止它。

您可以將數組中的數據寫入txt文件並在每次程序啓動時加載它。這樣你將保留數據。

相關問題