2010-10-02 130 views
1

在一個程序中,我試圖製作唯一的ID號碼。我用這樣的方式:使數字的唯一ID?

AtomicInteger count = new AtomicInteger(0); 
count.incrementAndGet(); 
int pid = count.get(); 
System.out.println("pid: " + pid); 

但我的教授這樣說:

的另一個問題是PID產生。你所做的只是獲得從0開始的下一個整數。當你到達流程表的末尾時會發生什麼?您必須提出自己的PID生成算法,該算法根據項目規範工作,即循環遍歷數字0到99,然後當循環回到低數字時,它會從最低可用pid開始。有很多方法可以實現這樣的算法,但最簡單的方法是添加1個mod 100,然後繼續查找,直到找到可用的pid。當然,這意味着你必須跟蹤哪些pid可用。

我該怎麼做?

回答

3

對我來說,你的教授的解釋是非常明確的 - 你有沒有明確的任何特定部分?

如果您瞭解各個部件,請將任務分成較小的子任務並逐個實施。像

  1. 循環的數字從0到99(99後,下一個數字應該再次爲0)
  2. 添加設備來存儲到目前爲止已經產生的數字(例如,在collection
  3. 加設施檢查,目前數量尚未使用
  4. (當相關進程終止添加設備,以釋放一個使用進程號 - 它不是來自你是否需要這個說明清楚。)
+0

2.是一個哈希集a好主意?? – Luron 2010-10-02 15:45:11

+0

@Luron,完美 - 這將是我的第一選擇:-) – 2010-10-02 15:57:49

+0

1.鏈接表會工作正確嗎? 4.是的,我確實需要。但我該怎麼做? – Luron 2010-10-02 15:57:56