[英]Java Collections: Implementation of a Queue as a linkedList?
在以下語句中:
Queue<Integer> queue1= new LinkedList<Integer>();
這是否意味着queue1將成為充當鏈表的隊列或充當隊列的鏈表?
我不確定集合,尤其是當它們按原樣聲明時。
Queue
是接口而不是類。 LinkedList
是Queue
接口的實現。
您可以這樣認為。
Animal a = new Cat()
Animal b = new Dog()
Animal c = new Cow()
a,b和c都是動物。 但是它們都是不同種類的動物。
隊列接口還有其他實現,例如ArrayBlockingQueue和PriorityQueue。 它們都實現了Queue接口,但內部執行不同的操作。 http://docs.oracle.com/javase/7/docs/api/java/util/Queue.html http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html
您可以這樣認為。 動物a =新的Cat()動物b =新的Dog()動物c =新的Cow()
Parent name = new Child();
這是指
name是Child,但是我們可以多態使用Parent引用。
在您的示例中,這里的Queue是一個接口,而LinkedList是Queue的子類。 這是一個好的編程習慣。 ( 編程到接口,而不是實現 )
queue1
一個充當Queue
的LinkedList
。
queue1
是一個LinkedList
。 畢竟那是被調用的構造函數。 LinkedList
類還實現了List
和Deque
,但是由於您已將其聲明為Queue
,因此該接口提供的方法將是您唯一無需強制轉換即可使用的方法,因此通常將其用作Queue
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.