2012-11-15 37 views
-2

我不明白。我知道這與堆棧不是向量有關。有人可以解釋這一點。Java如何堆棧類違反替代規則和封裝的概念

我猜它不可替代,因爲堆棧不是矢量。所以如果你有一個使用矢量的情況,你將無法使用堆棧。第二部分是猜測,但如果你要創建一個私有類,那麼你不知道該類如何被使用,並可能試圖將其作爲一個向量來實現。

+0

清晰。你爲什麼認爲堆棧類違反了可替換性規則和封裝概念? – Azodious

+0

我想它不可替代,因爲堆棧不是矢量。所以如果你有一個使用矢量的情況,你將無法使用堆棧。第二部分是猜測,但如果你要創建一個私有類,那麼你不知道該類如何被使用,並可能試圖將其作爲一個向量來實現。 – user1670252

回答

1

這隻有在你堅持Stack模型堆棧而沒有其他東西的情況下才是正確的。按照現狀,Stack允許stack-y操作,另外還有vector-y隨機訪問操作。它可能是類固醇的堆棧,但它仍然是一堆。

將其與名爲LinkedList的類相比較,該類還支持LIFO堆棧所需的方法。這是否使它成爲一個非列表?

順便說一句,請注意StackVector已經不再使用了,因爲1998年。