2012-12-18 48 views
-5

我不是專家,只是一個初學者。所以我懇請你爲我寫一些代碼。的Java與循環和閱讀列表

我有四個的ArrayList - >error_list_A, list_A, error_list_B, list_B在java中。 有一個單獨的程序獨立運行,將對象添加到這些列表中。

我需要寫一個單獨的程序讀取他們1分鐘或直到它們是空的,然後去下一個。這個程序應該始終處於運行模式並且聽取這些列表並處理它們。

喜歡的東西..

  1. 閱讀error_list_A並處理它的元素。

    如果沒有元素,然後去list_A

    如果元素然後讀取元素並刪除它們,直到所有被處理或達到1分鐘的時間限制然後去list_A

  2. 閱讀list_A和處理其元素。

    如果沒有元素,然後去error_list_B

    如果元素然後讀取元素並刪除它們,直到所有被處理或達到1分鐘的時間限制然後去error_list_B

  3. 閱讀error_list_B和處理其元素。

    如果沒有元素,然後去list_B

    如果元素然後讀取元素並刪除它們,直到所有被處理或達到1分鐘的時間限制然後去list_B

  4. 閱讀list_B和處理其元素。

    如果沒有元素,然後去error_list_A(環回,看看是否有在error_list_A有新的元素)

    如果元素然後讀取元素並刪除它們,直到所有被處理或達到1分鐘的時間限制,然後去到error_list_A(環回,看看是否有在error_list_A有新的元素)

  5. 循環回到步驟1

您可以發佈請問一些示例代碼?

我知道如何讀取和處理他們,你可以忽略的那部分。只需要在列表之間切換並在循環中保持讀取的代碼。

它不是一門功課。在實際的程序中,我必須通過讀取存儲Web應用程序錯誤的目錄來實現此目的。所以請不要忽視它說你正在幫助功課。

我試過這樣的事情..

public class ListReader { 

    private static List<Object> list_A, error_list_A, list_B, error_list_B; // Initialize list by reading them. 

    public static void main(String[] args) { 
     while (true) { 
      if (error_list_A != null && error_list_A.size() > 0) { 
       processList(error_list_A); 
      } else if (list_A != null && list_A.size() > 0) { 
       processList(list_A); 
      } else if (list_B != null && list_B.size() > 0) { 
       processList(list_B); 
      } else if (error_list_B != null && error_list_B.size() > 0) { 
       processList(error_list_B); 
      } 
     } 
    } 

    private static void processList(List<Object> list){ 
     // Code for when empty or time limit reached then return 
    } 

} 

但似乎沒有任何意義。

謝謝。

+7

純粹的代碼寫入請求是堆棧溢出恐懼題外話。 – assylias

+0

首先你嘗試一些東西,然後向我們展示你正面臨的一些真正的問題。我相信如果你展示你的努力,SO不會讓你失望。 – Smit

+0

我不需要純代碼。只是一些代碼在列表之間切換,並讓它們在循環中讀取。 – user1913599

回答

3

我建議你自己寫代碼。只有這樣,你纔會學習語言。 計算機科學中最困難的問題是找到問題的最佳算法。如果手頭有算法,實現起來很簡單。

所以,請編碼的算法,如果你正面臨一些錯誤或問題,請張貼在這裏。

更新

if (error_list_A != null && error_list_A.size() > 0) { 
       processList(error_list_A); 
      } 
if (list_A != null && list_A.size() > 0) { 
       processList(list_A); 
      } 
if (list_B != null && list_B.size() > 0) { 
       processList(list_B); 
      } 
if (error_list_B != null && error_list_B.size() > 0) { 
       processList(error_list_B); 
      } 
在PROCESSLIST功能

,您啓動計時器,然後開始從list.Before處理每個元素處理每個元素,檢查timer.If它超過1分鐘時,你可以從函數返回,否則繼續。繼續直到到達列表的末尾。如果時間尚未超過1分鐘,則返回。

+0

你能爲這個問題建議一些示例代碼嗎?我不需要確切的代碼,但只是一些提示.. – user1913599

+0

使用定時器1分鐘等待似乎是非常可行比連續while循環。不過你也可以使用'System.currentTimeMillis()'並創建精確的時間計數器,但它的一個很大的優點 – Smit