La différence entre la méthode add() et l'offre() les méthodes de l'interface d'Attente
J'allais bien FIFO mise en œuvre en Java et est venu à travers ce java.util.File d'attente de l'interface. Retirer la met en œuvre, qui à son tour est mis en œuvre par Liste chaînée.
J'ai écrit le code suivant
public class FIFOTest {
public static void main(String args[]){
Queue<String> myQueue = new LinkedList<String>();
myQueue.add("US");
myQueue.offer("Canada");
for(String element : myQueue){
System.out.println("Element : " + element);
}
}
}
Les deux semblent faire la même chose. Ajouter des données à la tête de la file d'attente. Quelle est la différence entre ces deux méthodes? Tout cas particuliers dans lesquels un ou l'autre serait plus bénéfique que d'autres?
Il est décrit dans le premier paragraphe de
Queue
javadocOriginalL'auteur Aniket Thakur | 2013-12-11
Vous devez vous connecter pour publier un commentaire.
LinkedList#offer(E)
est mis en œuvre commeDans ce cas, ils sont la même chose. Ils sont juste nécessaires pour satisfaire les interfaces.
LinkedList
implémenteDeque
etList
. LeLinkedList#add(E)
méthode ne permet pas de jeter unException
comme il y en aura toujours plus d'éléments, mais dans un autreQueue
de mise en œuvre qui a une capacité limitée ou prend que seuls certains types d'éléments,add(E)
peut lever une exception lors de laoffer(E)
renvoie simplementfalse
.Pas exactement.
poll
sera de retournull
si il n'y a pas d'éléments.remove()
va jeter unNoSuchElementException
.C'est la même idée:
offer()
etpoll()
retour des valeurs spéciales en cas d'échec, alors queadd()
etremove()
lancer des exceptions.OriginalL'auteur Sotirios Delimanolis
null
oufalse
, selon l'opération).Selon les docs, Les File d'attente.offre forme de l'opération d'insertion est conçu spécifiquement pour les
l'utilisation de la capacité restreinte de la File d'attente des implémentations; dans la plupart des
les mises en œuvre, les opérations d'insertion ne peut pas échouer.
Pour plus de détails, lisez ce docs.
OriginalL'auteur Masudul
Selon les docs la principale différence est que, lorsque l'opération échoue, un (
add
) déclenche une exception et que les autres (offer
) renvoie une valeur spéciale (false
):OriginalL'auteur Ted Hopp
add()
vient deCollection
Interface.offer()
vient deQueue
Interface.La Documentation de
offer()
méthode de File d'attente, ditLa Documentation de
add()
méthode de File d'attente, ditOriginalL'auteur Santosh Joshi