我有90個ID,我需要類似下面的圖像。我想先彈出最後一個ID,如果有新的ID添加到堆棧中,我想將它推到最後。最後一次輸出。這樣的事情是否已經存在?我知道我可以使用其他集合實現,但我想知道是否有這樣的堆棧已經完成。最後在Java中出現
回答
Queue是具有多個實施方式中(包括諸如阻擋適合於多線程溶液隊列)
你可以使用一個Queue<E>
。
你可以使用排序其通過的java提供Queue<E>
實施(見queue實現)的接口。
另一個可能的選擇是使用LinkedList<E>
(見:http://download.oracle.com/javase/1.4.2/docs/api/java/util/LinkedList.html)
它提供了你需要的所有方法。特別是因爲你的描述看起來如此,如果你不完全確定你想要的行爲。
甲Queue<E>
應當優於LinkedList<E>
至少爲大的集合,而不需要的隨機接入。
看起來像一個普通的隊列實現,其中元素以相反的順序添加到隊列中以開始。
下面是一些代碼,讓你開始:
private static BlockingQueue<String> queue = new LinkedBlockingQueue<String>();
public static void main(String args[]) throws InterruptedException {
// Start a thread that puts stuff on the queue
new Thread(new Runnable() {
public void run() {
while (true) {
try {
queue.put("Some message");
Thread.sleep(100);
}
catch (InterruptedException e) {
// Handle interruption
}
}
}
}).start();
// Start a thread that takes stuff from the queue (LILO)
new Thread(new Runnable() {
public void run() {
while (true) {
try {
String message = queue.take(); // Waits if necessary for something to arrive
// Do something with message
Thread.sleep(100);
}
catch (InterruptedException e) {
// Handle interruption
}
}
}
}).start();
Thread.currentThread().wait();
}
爲什麼不使用匿名類來繼承'Thread'而不是實現'Runnable'?您可以擺脫一些樣板代碼,並且匿名類不存在實現'Runnable'的好處。或者我錯過了什麼? –
您需要在這裏使用用例的'Queue'的線程安全實現。其實你正在使用'BlockingQueue'的簽名,它必須按照慣例是線程安全的。也許你應該提到這一點。 –
糟糕 - 遺漏了隊列聲明:)謝謝。 – Bohemian
- 1. $如何在最後出現?
- 2. C++的printf只出現在最後
- 3. 最後輸出沒有出現
- 4. 最後在java中返回
- 5. 最後在Java Junit 4中
- 6. 最後在Android Java中
- 7. 在Java中從控制檯讀取多行,最後一行出現問題
- 8. 在sikuli中出現 - java
- 9. 查找數組Java的最後一次出現?
- 10. '最後'是如何在C#或Java中實現的?
- 11. Xposed模塊中實現最後出現的調整
- 12. VBA正則表達式最後出現
- 13. aiml - 最後一次出現的單詞
- 14. 最後審查出現錯誤
- 15. 字符最後一次出現
- 16. 查找字符串到最後出現
- 17. 在最後一次出現字符後刪除字符串
- 18. XSL子串 - 在最後一次出現字符串後
- 19. Java - 打印出陣列中最少出現的元素
- 20. ASP.NET - Foreach最後一個元素出現在整個列表中
- 21. 在正則表達式中標記最後出現的JavaScript
- 22. 最後一次出現在一行中的字符串
- 23. 網站內容出現在標題中,但最後加載
- 24. 替換字符的最後一次出現在文件中
- 25. 在PHP中獲取一天/一月的最後一次出現
- 26. 使零出現在最後一個升序數列表中
- 27. Prinitng輸出最後一行輸入Java
- 28. Eclipse一段時間後出現錯誤,出現java錯誤
- 29. 如何刪除java中第一個和最後一個出現的句子
- 30. UIButton不會出現在UItableView的最後一節的最後一行
「我希望最後一個ID先被彈出」將是後進先出,即正常堆棧。 – geoffspear
這是一個隊列嗎? –
讓它成爲答案Wooble,當我發佈這個問題時,我很笨,現在我不能刪除它。 – LuckyLuke