Différence dans LinkedList, la file d'attente de vs liste
Quelle est la différence lors de la création de ces deux objets
Queue<String> test = new LinkedList<String>();
et
List<String> test2 = new LinkedList<String>();
Quelles sont les différences réelles entre les test
et test2
? Sont tous les deux LinkedList
? Sont-il des écarts de performances ou de raisons d'utiliser l'un plutôt que l'autre?
- Êtes-vous sûr? Je suis assez sûr que ces deux sont légales du code Java.
- Ils ne se compile pas, car il leur manque une (), pas parce que la cession serait illégal de le faire 🙂
- ok () a été corrigé
InformationsquelleAutor Kailua Bum | 2013-03-25
Vous devez vous connecter pour publier un commentaire.
Les deux déclarations que vous avez écrit chaque la construction d'un
LinkedList<String>
objet de tenir une liste de chaînes de caractères, puis l'affecter à une variable. La différence réside dans le type de la variable.Par l'affectation de l'
LinkedList<String>
à une variable de typeQueue<String>
, vous pouvez uniquement accéder aux méthodes de laLinkedList
qui sont disponibles dans leQueue<String>
interface, qui inclut le soutien de replacement et la file d'attente des éléments. Ce serait utile si vous avez besoin d'écrire un programme qui permet une file d'attente pour des opérations diverses et je voulais la mettre en file d'attente en utilisant une liste chaînée.Par l'affectation de l'
LinkedList<String>
à une variable de typeList<String>
, vous pouvez uniquement accéder aux méthodes de laLinkedList
qui sont disponibles dans leList<String>
interface, qui sont normal des opérations pour le maintien d'une séquence d'éléments. Ce serait utile, par exemple, si vous avez besoin pour traiter une liste d'éléments qui peuvent augmenter et réduire n'importe où.En bref, les deux lignes de créer le même objet, mais l'intention de les utiliser de différentes manières. On dit qu'il a besoin d'une file d'attente soutenu par une liste chaînée, tandis que l'autre dit qu'il a besoin d'un général de la séquence des éléments soutenus par une liste chaînée.
Espérons que cette aide!
Dans les deux cas, vous êtes de l'instanciation
LinkedList
.La différence est le type des variables que vous utilisez pour consulter ces instances.
test
est de typeQueue
ettest2
est de typeList
. Selon le type de variable, vous n'aurez qu'à appeler les méthodes qui sont spécifiés sur ce type particulier. Je pense que ce qui compte pour votre situation.De Performance, ça va être la même chose, parce que la mise en œuvre réelle que vous utilisez dans les deux cas est la même (
LinkedList
).Je me sens à la fois d'entre eux sont à peu près identiques, sauf que le type de méthodes que vous allez exposer. Comme LinkedList implémente deux interfaces, afin de choisir l'un d'eux ouvre l'accès à des méthodes de ce type d'interface.
veuillez jeter un oeil à ces liens pour l'interface des déclarations de méthode de
http://docs.oracle.com/javase/6/docs/api/java/util/Queue.html
http://docs.oracle.com/javase/6/docs/api/java/util/List.html
je ne suis pas sûr à propos de la performance, mais je suppose que ça ne devrait pas être différent que l'objet de la mise en œuvre est commune.