2012-12-02 27 views
1

這是我的代碼:需要一些澄清隊列和鏈表實現

/* 
private Queue<Card> cards = new LinkedList<Card>(); 

*/ 

我使用的是隊列和鏈表處理的黑傑克一副撲克牌。

現在,我的理解是隊列持有卡,並且LinkedList授予訪問Queue,對嗎?

如果不是,有人可以給我一個上述代碼做的分解嗎?

回答

3

您沒有鏈接列表一個隊列。類LinkedList<E>實現接口Queue<E>。您正在創建鏈接列表,但隨後將其用作隊列。

+0

太好了。非常感謝你。所以這意味着我可以使用與隊列相關的方法,如「添加」和「刪除」是否正確? – edxyz

+0

@edxyz:是的,您可以使用'Queue'上的方法。也可以通過轉換來訪問'LinkedList'上的方法,但是您應該避免這樣做,因爲它會將變量聲明爲'Queue '。 –

0

現在,我的理解是,隊列持有卡,鏈表授予訪問隊列,正確嗎?

Queue是一個接口(抽象,一種方法來定義合同),而LinkedList是接口的實現。換句話說,它很難履行合同。

在這種特殊情況下,Queue是一個非常受限制的接口,它只公開了LinkedList的幾個可能的操作。

現實生活中的例子:銀行是一個擁有員工,財務和辦公室的機構。互聯網是您訪問銀行的一種方式,提供一些界面和功能。當使用移動應用程序或通過電話與銀行顧問交談時,您仍在使用同一家銀行,但使用的界面不同。

0

Queue是一個接口,使您可以與隊列中的底層對象LinkedList進行交互。所以你不能通過index等方法調用方法來獲取對象。所以Queue削減LinkedList的功能,你不需要時使用隊列機制。