2012-08-08 60 views
0

你可以建議哪些數據結構在下列情況下使用:類似的數據結構棧

我用Java

我需要SMTH像一個堆棧 - 先出那麼最後,但固定堆棧大小,例如只有5個元素可以放在裏面,當一個新元素被放到堆棧中時,堆棧底部的元素應該被丟棄,並且我也想通過索引獲取元素,這是最新的元素的索引爲0,最舊的元素的索引爲4.

在Java中是否有適當的smth?

我試過使用java.util.Stack,但例如如果我將大小設置爲3並嘗試添加4個元素,它們全部都添加到堆棧中。

+1

這裏的環形緩衝區聽起來很完美,假設你保持它的固定大小。 – templatetypedef 2012-08-08 04:48:56

回答

0

Java有ArrayDeque,這基本上是一個可增長的環形緩衝區。如果你想保持它的大小不變,只需在推動前檢查尺寸,如果尺寸太大,則彈出底部值。

+0

Thx指向正確的方向,基本上堆棧是好的,我只是檢查是否達到最大尺寸我刪除位置0的元素,並推新元素。 – 2012-08-08 04:58:56

+0

使用數組deque更快,因爲對於基於標準數組列表的堆棧,移除底層元素是O(1)而不是O(n)。 – Antimony 2012-08-08 05:21:33