簡體   English   中英

Java集合:將隊列實現為LinkedList嗎?

[英]Java Collections: Implementation of a Queue as a linkedList?

在以下語句中:

Queue<Integer> queue1= new LinkedList<Integer>();

這是否意味着queue1將成為充當鏈表的隊列或充當隊列的鏈表?

我不確定集合,尤其是當它們按原樣聲明時。

Queue是接口而不是類。 LinkedListQueue接口的實現。

您可以這樣認為。

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一個充當QueueLinkedList

queue1是一個LinkedList 畢竟那是被調用的構造函數。 LinkedList類還實現了ListDeque ,但是由於您已將其聲明為Queue ,因此該接口提供的方法將是您唯一無需強制轉換即可使用的方法,因此通常將其用作Queue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM