Unterschied zw. Queue und List (Of)

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von der_Kurt.

    Queue ist eine art warteschlange im firt-in-first-out-modus. das bedeutet, ein objekt, dass in einer queue am anfang gespeichert wird, wird am ende des queue wieder raus gelöscht. es ist also ein in sich zirkuläres array.
    List ( Of ) ist einfach eine lineare liste von indizierten arrays, wo bei jedem index ein neues item hinzugefügt werden kann ohne eine löschung zu erfordern. sie lässt nothing als item und doppelte elemente zu.

    für nähere infos siehe system.collection-namespace: msdn.microsoft.com/de-de/libra…ollections(v=vs.110).aspx
    Außerdem ist eine Queue das Gegenteil von einem Stack, da bei einem Stack immer das zuletzt hinzugefügte Element zuerst abgenommen wird (Stapel halt.)

    Meiner Erfahrung nach sind Queues auch für ihre Absicht performaceoptimierter gegenüber einer List ^^
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Also mit der Beschreibung der Queue bin ich einverstanden, aber mit der der List nicht.

    affrop schrieb:

    List ( Of ) ist einfach eine lineare liste von indizierten arrays
    Wat? Vielleicht hast du dich nur verhaspelt, aber du sagst da, die List<T> ist eine Auflistung von Arrays. Das ist zwar grundsätzlich nicht ausgeschlossen, da T alles sein kann, aber kommt wohl eher selten vor.
    Ich hätte eher gesagt, die List<T> ist eine indizierte Auflistung, die sich, im Gegensatz zu einem Array, dynamisch vergrößert und verkleinert, wenn man Elemente hinzufügt/entfernt.

    affrop schrieb:

    wo bei jedem index ein neues item hinzugefügt werden kann ohne eine löschung zu erfordern
    Wieder ziemlich unverständlich ausgedrückt, was du hier sagen wolltest kann ich nur erahnen.
    Was (als Folge von dem gerade genannten) gilt, ist, dass man für jeden Index das zugehörige Item frei festlegen kann. Bedingung dafür ist, dass bereits ein Element an dem entsprechenden Index durch vorhergehende Add- oder AddRange-Aufrufe existiert, ein nicht vorhandener Index kann auch nicht zu festlegen eines Items benutzt werden. Etwas gelöscht werden muss aber in keinem Fall.

    affrop schrieb:

    sie lässt nothing als item und doppelte elemente zu.
    Das ist richtig, gilt aber auch für die Queue<T>, ist also kein Unterschied.
    Vereinfacht:
    Queue (of Leute) ist eine Auflistung, bei der sich das neuste Element hinten anstellen muss, und das am längsten in der Schlange vorhandene drankommt.
    (Gegenteil von Stack (of Spielkarten)) Das neueste Element im Stapel kommt als erstes wieder dran.
    Die List(of wasauchimmer) macht das Ganze sehr dynamisch. Man kann Elemente hinzufügen, WO man will, und auch Elemente entfernen, WO man will.

    OT: schließlich sind wir hier im Grundlagen-Forum. ;)