這是我的代碼:需要一些澄清隊列和鏈表實現
/*
private Queue<Card> cards = new LinkedList<Card>();
*/
我使用的是隊列和鏈表處理的黑傑克一副撲克牌。
現在,我的理解是隊列持有卡,並且LinkedList
授予訪問Queue
,對嗎?
如果不是,有人可以給我一個上述代碼做的分解嗎?
這是我的代碼:需要一些澄清隊列和鏈表實現
/*
private Queue<Card> cards = new LinkedList<Card>();
*/
我使用的是隊列和鏈表處理的黑傑克一副撲克牌。
現在,我的理解是隊列持有卡,並且LinkedList
授予訪問Queue
,對嗎?
如果不是,有人可以給我一個上述代碼做的分解嗎?
您沒有鏈接列表和一個隊列。類LinkedList<E>
實現接口Queue<E>
。您正在創建鏈接列表,但隨後將其用作隊列。
現在,我的理解是,隊列持有卡,鏈表授予訪問隊列,正確嗎?
號Queue
是一個接口(抽象,一種方法來定義合同),而LinkedList
是接口的實現。換句話說,它很難履行合同。
在這種特殊情況下,Queue
是一個非常受限制的接口,它只公開了LinkedList
的幾個可能的操作。
現實生活中的例子:銀行是一個擁有員工,財務和辦公室的機構。互聯網是您訪問銀行的一種方式,提供一些界面和功能。當使用移動應用程序或通過電話與銀行顧問交談時,您仍在使用同一家銀行,但使用的界面不同。
Queue
是一個接口,使您可以與隊列中的底層對象LinkedList
進行交互。所以你不能通過index
等方法調用方法來獲取對象。所以Queue
削減LinkedList
的功能,你不需要時使用隊列機制。
太好了。非常感謝你。所以這意味着我可以使用與隊列相關的方法,如「添加」和「刪除」是否正確? – edxyz
@edxyz:是的,您可以使用'Queue'上的方法。也可以通過轉換來訪問'LinkedList'上的方法,但是您應該避免這樣做,因爲它會將變量聲明爲'Queue'。 –