Fark,

2013-03-25 22 views
20

Ne fark yaratıyor bu iki nesneFark,

Queue<String> test = new LinkedList<String>(); 

ve

List<String> test2 = new LinkedList<String>(); 

test ve test2 arasındaki gerçek farklar nelerdir listeye vs kuyruğa? İkisi de LinkedList mu? Bir diğeri üzerinde performans farkı veya nedenleri var mı?

+0

@ BheshGurung- Emin misin?Her ikisinin de yasal Java kodu olduğundan eminim. – templatetypedef

+1

Derleme yapamadıkları için derleme yapmıyorlar, çünkü atama yasadışı olacağından değil :) – Affe

+0

tamam() düzeltildi –

cevap

33

Yazdığınız iki deyim, dizelerin listesini tutmak için bir LinkedList<String> nesnesi oluşturur, sonra onu bir değişkene atar. Fark, değişkenin türündedir. tip Queue<String> bir değişkene LinkedList<String> atayarak

, sadece enqueuing ve elemanlarını dequeuing için destek içerir Queue<String> arayüzü mevcuttur LinkedList yöntemleri erişebilirsiniz. Bu, çeşitli işlemler için kuyruk kullanan ve bağlantılı bir liste kullanarak bu sırayı uygulamak isteyen bir program yazmanız gerektiğinde yararlı olacaktır.

tip List<String> bir değişkene LinkedList<String> atayarak, sadece takılan elemanların bir dizi muhafaza edilmesi için normal işlemleri vardır List<String> arabirim mevcuttur LinkedList yöntemleri, erişebilir. Bu, örneğin, herhangi bir yerde büyüyebilecek ve küçülecek öğelerin bir listesini işlemeniz gerektiğinde yararlı olabilir. Kısaca, iki çizgi aynı nesneyi yaratır ancak bunları farklı şekillerde kullanmayı düşünür. Biri bağlantılı bir liste tarafından desteklenen bir sıraya ihtiyaç duyduğunu söylerken, diğeri bağlantılı bir liste tarafından desteklenen genel bir eleman dizisine ihtiyaç duyduğunu söylüyor.

Bu yardımcı olur umarız!

3

Her ikisi de, ortaya çıkaracağınız yöntemlerin türü dışında hemen hemen aynı olduklarını hissediyorum. LinkedList her iki arabirimi de uyguladığı için, bunlardan birini seçmek, o arabirim tipindeki yöntemlere erişimi açar. i nesne uygulaması yaygındır gibi farklı olmamalıdır tahmin rağmen

i performansı hakkında emin değilim arabirim yöntem bildirimleri

http://docs.oracle.com/javase/6/docs/api/java/util/Queue.html http://docs.oracle.com/javase/6/docs/api/java/util/List.html

için bu bağlantıların bir göz atın lütfen.

3

Her iki durumda da, LinkedList örneğini başlatıyorsunuz.

Fark, bu örneklere başvurmak için kullandığınız değişkenlerin türleridir.

test, Queue ve test2 türünde List türüdür. Değişken türüne bağlı olarak, yalnızca bu türlerde belirtilen yöntemleri çağırırsınız. Bence durumun için önemli olan bu.

Her iki durumda da kullandığınız gerçek uygulama aynı olduğundan (LinkedList), performans açısından aynıdır.