‫In diesem Video werden wir Kyuss behandeln und sehen, wie man Cues in unseren Anwendungen
‫verwendet. Cues sind wichtig und werden von unserem Betriebssystem häufig verwendet, zum Beispiel um Aufgaben, Planung und
‫viele andere Prozesse abzuwickeln.
‫Cues sollten verwendet werden, wenn die Reihenfolge der Daten wichtig ist, wie wir in unserem Beispiel sehen werden.
‫Lassen Sie uns also fortfahren und zunächst eine Warteschlange definieren, um eine Warteschlange zu definieren, mit der Sie sich in die Warteschlange stellen können.
‫Schlüsselwortwarteschlangen sind auch Teil der generischen Sammlungen, was bedeutet, dass wir definieren müssen,
‫welchen Warteschlangentyp A enthält.
‫In diesem Fall wird es also eine Reihe von ganzen Zahlen enthalten, aber es könnte auch jeden anderen Typ enthalten.
‫Es könnte Fäden halten, es könnte sogar das ganze Objekt halten.
‫Sie können also völlig frei definieren, was dieser Artikel enthalten soll.
‫Also Warteschlange dann kleiner als Vorzeichen, integrieren und unterschreiben und dann der Name der Warteschlange gleich ist und dann können Sie
‫sie sofort initialisieren, wie wir es hier tun, wo wir einfach eine leere Warteschlange erstellen, die ganze Zahlen enthält.
‫OK, jetzt können wir fortfahren und Elemente zu dieser Warteschlange hinzufügen.
‫Um Anklagepunkte hinzuzufügen, können Sie die NQ-Methode verwenden.
‫Die NQ-Methode fügt am Ende der Warteschlange ein Objekt hinzu.
‫OK, wenn ich also beispielsweise ein Element wie eines hinzufüge, wird dieses Element das erste sein, denn es ist zwar das erste,
‫das wir einschließen, aber es wird auch das letzte sein.
‫OK, sobald wir ein weiteres hinzufügen, wird das neue Element das letzte Element in der Warteschlange sein.
‫Okay, so wird bestellt.
‫Es ist ähnlich wie ein Stapel, aber der Unterschied besteht darin, dass eine Warteschlange, wenn Sie etwas
‫loswerden, wenn Sie also ein Element aufwerfen, es vom Anfang der Warteschlange nimmt.
‫Das andere zuerst erstellte Element wird also sozusagen weggenommen oder aus der Warteschlange entfernt.
‫OK, um uns die Qs-Elemente anzusehen, können wir die Peak-Methode verwenden, und diese Methode zeigt das erste Element in der Warteschlange
‫an, also sozusagen die Spitze der Warteschlange.
‫Es ist also wie eine Schlange von Leuten, an der Sie am Schalter stehen und beispielsweise etwas bestellen möchten,
‫dann gibt Ihnen die Methode die erste Person in dieser Schlange, die gerade bestellen wird.
‫OK, also lassen Sie uns das ganz schnell ausführen und sehen, wie das aussehen wird.
‫Und wir sehen, dass der Wert an der Spitze der Warteschlange eins ist.
‫Fügen wir nun noch ein paar weitere Werte hinzu, um zu sehen, wie sich dies auf unsere Anwendung auswirkt.
‫Hier füge ich also die verschiedenen Warteschlangenelemente hinzu, so dass ich Q1 und Q2 und Q3 beende und nur diese
‫Zahlen verwende.
‫Eins zwei drei.
‫Das können auch beliebige andere Nummern sein.
‫Muss nicht unbedingt eins, zwei, drei sein.
‫OK, mit Peaking erhalten wir also das Element, das sich am Anfang der Warteschlange befindet.
‫Sie können jedes Mal sehen, egal was wir der Warteschlange hinzufügen, das eine wird unser erstes Element in der
‫Warteschlange sein.
‫Es wird also dasjenige sein, das angezeigt wird, als wir die Peek-Methode verwendet haben.
‫Um nun ein Element aus der Warteschlange zu entfernen, verwenden Sie die Dequeue-Methode.
‫Okay, hier ist also keine Warteschlange.
‫Dieses Dequeue entfernt nun die erste ganze Zahl unserer Queue und speichert sie auch sofort.
‫Wir könnten also beispielsweise dieses eine Warteschlangenelement speichern, und es wird dann das Ergebnis dieses aus der
‫Warteschlange entfernten Elements speichern.
‫Im Grunde wird es also einen dort speichern, da dies das erste Element ist, das wir in der Liste haben.
‫Und dann wird auch Peking angezeigt, denn jetzt ist keiner mehr da.
‫Der erste Artikel ist weg.
‫Der Wert in der Warteschlange ist jetzt also zwei, da wir gerade das erste Element entdeckt haben.
‫Es ist also ähnlich wie Pop in einem Stapel, aber es nimmt das Element am Anfang der Warteschlange statt am Ende der
‫Warteschlange oder am Ende des Sticks weg, wie auch immer Sie es betrachten möchten.
‫Sie können natürlich auch versuchen, ein Element am Anfang aus der Warteschlange zu entfernen, wenn sich keine
‫Elemente im Cube befinden, aber Sie werden auf eine ungültige Operationsausnahme stoßen, die Warteschlange ist leer, also müssen
‫Sie überprüfen, ob die Warteschlange leer ist oder nicht, bevor Sie dies ausführen.
‫Hier können wir also die Dequeue-Methode ausführen, weil wir wissen, dass wir gerade etwas aufgedeckt haben.
‫Andernfalls würden Sie jedoch die count-Eigenschaft Ihrer Warteschlange verwenden, um herauszufinden, wie viele Elemente Sie dort
‫haben.
‫Dies ist also die Eigenschaft, die Sie verwenden können, die die Anzahl der in der Warteschlange enthaltenen
‫Elemente abruft, und Sie können dann beispielsweise überprüfen, ob diese Eins größer als Null ist, um beispielsweise zu
‫überprüfen, ob sich in der Warteschlange etwas befindet , aus der Warteschlange.
‫OK, in diesem speziellen Beispiel werde ich einfach meine verwenden.
‫Q Count, um in einer while-Schleife zu überprüfen, und für jedes einzelne Element werde ich es aus der Warteschlange entfernen und auch die
‫Anzahl der Elemente aufschreiben, die sich noch im Q befinden und auch das Element, das entfernt wurde.
‫Diese Zeile hier entfernt also das Element, indem es die Dequeue-Methode aufruft, und gleichzeitig wird das
‫Element hier angezeigt, da wir es hier verwenden.
‫Wir verwenden die Zeichenfolge.
‫Rechts.
‫Und mit dieser Position Null wird angezeigt, was auch immer das Ergebnis des Dequeue-Aufrufs ist.
‫Und wie Sie hier sehen können, gibt die Dequeue-Methode eine ganze Zahl zurück.
‫Also werden wir hier eine Zahl anzeigen.
‫OK, also lassen Sie mich dieses Dequeue loswerden, das ich hier verwendet habe, um zu demonstrieren, wie man ein Element aus der Warteschlange entfernt und
‫es erneut ausführen lässt, und Sie können den Wert sehen, der sich von diesem unterscheidet.
‫Und dann starten wir hier im Grunde die Drahtschleife.
‫Das ist der interessante Teil.
‫Also wird ein Wort aus dem Würfel entfernt.
‫Jetzt haben wir nur noch zwei Artikel.
‫Zwei wurden aus der CUNA entfernt.
‫Wir haben nur noch einen Gegenstand übrig und drei wurden aus dem Würfel entfernt.
‫Jetzt haben wir nur noch null Artikel.
‫Im Grunde ist das Q zu diesem Zeitpunkt also leer.
‫In Ordnung, also schauen wir uns ein mehr oder weniger reales Beispiel an, natürlich arbeiten wir
‫in diesem einfachen Beispiel hier nicht mit Datenbanken, aber sagen wir, wir haben eine E-Commerce-Plattform und sind Verkäufer und wir erhalten
‫eine Menge Bestellungen.
‫Diese Bestellungen sollen so bearbeitet werden, dass die Servicezeit, also die Wartezeit für den Kunden, möglichst gering
‫gehalten werden soll.
‫Aus diesem Grund werden wir Qs verwenden, weil sie sehr praktisch sind, da wir uns
‫um die Reihenfolge der eingehenden Bestellungen kümmern.
‫Also die Reihenfolge der Bestellungen, das ist hier ein kleiner Zungenbrecher, aber die Reihenfolge, in der die Daten
‫empfangen wurden, OK, und damit meine ich die Bestellungen selbst.
‫Schauen wir uns also diese sehr einfache Klasse an, die wir hier erstellen werden, und ich werde sie hier
‫in dieselbe Datei einfügen.
‫Festplattenlose Bestellung mit einer Bestell-ID-Eigenschaft, der Bestellmengen-Eigenschaft und dann dem Konstruktor, der im Grunde nur diese beiden
‫Werte festlegt, wenn wir ein Bestellobjekt erstellen.
‫Und dann haben wir diese Drucknachricht oder diese Prozessbestellmethode, die die Bestell-ID des Artikels ausdruckt, den
‫wir gerade betrachten.
‫Also von der Reihenfolge, die wir uns gerade ansehen.
‫OK, jetzt möchte ich also Methoden innerhalb meiner Programmklasse erstellen.
‫Also werde ich es noch hier in diese Klammer einfügen.
‫Und die Methoden, sie werden sich um Bestellungen aus den verschiedenen Filialen kümmern.
‫Nehmen wir also an, wir haben zwei verschiedene Filialen, von denen wir Bestellungen entgegennehmen können.
‫Nehmen wir an, wir verkaufen zum Beispiel bei Amazon und gleichzeitig bei Best Buy, und dann bekommen wir
‫jetzt diese Bestellungen.
‫Jetzt machen wir es nicht zu kompliziert, wo wir überprüfen, welcher Branch was die Reihenfolge der verschiedenen Branches
‫tut, oder Sie können es natürlich als Herausforderung für sich selbst sehen, wenn Sie das
‫entwickeln möchten .
‫Aber wir sagen einfach: OK, gib mir die Befehle von jedem in der richtigen Reihenfolge und gib mir
‫auch die Befehle von Filiale zu in der richtigen Reihenfolge.
‫OK, hier wird die Filiale eins mit einer Reihe von Bestellungen sein und dann haben wir die Filiale zwei mit einer Reihe von
‫Wörtern.
‫Also bekommen wir die Daten.
‫Nehmen wir an, wir erhalten diese Daten aus einer Datenbank, in der wir überprüfen, OK, was waren die Bestellungen?
‫Und wir würden sie wahrscheinlich nach Datum überprüfen, damit jede Bestellung auch ein Datum erhält.
‫Hier haben wir die Bestell-ID, würden aber normalerweise auch versuchen zu speichern, wann sie bestellt wurde und so weiter.
‫Aber wir werden es für dieses Beispiel einfach halten.
‫OK, wir haben jetzt also in beiden Beispielen ein Array von Bestellungen.
‫Und wenn wir die Methode Receive Orders from Branch 1 und 2 aufrufen, werden sie im Grunde nur ein Order-Array
‫umwandeln.
‫Hier also eine Reihe von Bestellungen.
‫OK, das ist es, was diese Anweisung hier macht, Bestellungen zurückgeben.
‫In unserem speziellen Beispiel wird die Bestell-ID nun tatsächlich für die beiden verschiedenen Bestellungen eindeutig sein,
‫sodass sie sozusagen bereits in der richtigen Reihenfolge sind.
‫OK, das ist also Bestellung eins in Reihenfolge zwei, dann haben wir drei und vier und fünf von
‫Filiale zwei bestellt und dann am Abend und Filiale eins kam eine weitere Bestellung und jemand kaufte 10 unserer
‫Artikel.
‫Jetzt können wir in unserer Hauptmethode eine Warteschlange erstellen und wir werden all dieses Zeug hier loswerden. Mit unserer Hauptmethode
‫können wir jetzt eine Warteschlange mit Bestellungen erstellen.
‫OK, also hier, Warteschlangenreihenfolge.
‫Sie können sehen, dass dies jetzt kein einfacher Typ wie Integer sein wird, sondern tatsächlich eine
‫Reihe von Orders enthalten wird.
‫Das ist das Coole an der Warteschlange.
‫Es sind also nicht nur einfache Typen und ich werde diese eine Auftragswarteschlange aufrufen und sie gleich
‫hier initialisieren.
‫Und dann können wir an diesem Punkt fortfahren und alle unsere Bestellungen, die wir von Zweig 1 erhalten, in die Warteschlange stellen, indem wir
‫diese for-Schleife hier für jede Schleife verwenden.
‫Also gehen wir jeden einzelnen Auftrag durch, den ich hier für jede Schleife in dieser
‫Iteration in unseren Empfangsaufträgen von Zweig 1 aufrufe.
‫Dies hier wird nun vom Typ order array sein.
‫OK, wenn wir diese Methode aufrufen, wird ein Array von Bestellungen zurückgegeben, wie Sie hier sehen.
‫Im Grunde geht dies für jede Schleife durch die Aufträge, die wir in diesem Auftragsarray haben, und
‫durchsucht jeden einzelnen von ihnen.
‫Alles wird also zuerst diese Reihenfolge sein, dann wird es diese Reihenfolge sein, dann wird es diese Reihenfolge sein.
‫Und für jeden von ihnen wird es diese Bestellungen enthalten.
‫OK, das ist es, was dies für jede Schleife tut.
‫Und dann erstellen wir für jede Schleife auch für den anderen Zweig eine andere.
‫So.
‫Dasselbe gilt hier für jede Schleife, alle in Bestellungen, die von Zweig 2 erhalten wurden.
‫OK, das ist Branch Dude, das ist Branch eins und das gleiche gilt.
‫Es gilt also das gleiche Konzept.
‫Zu den Bestellungen gehen wir also nacheinander unsere Warteschlange durch und entfernen dann die Elemente aus unserer Warteschlange und
‫verarbeiten sie, bis unsere Warteschlange leer ist und alle Bestellungen endgültig bearbeitet sind.
‫OK, deshalb haben wir hier diese Auftragsbearbeitungsmethode, die die Aufträge verarbeitet.
‫Okay, jetzt können wir weitermachen.
‫Und anstatt unserer Hauptmethode hier oben, können wir, sobald wir die Bestellwarteschlange mit allen
‫Artikeln darin haben, durchgehen und prüfen, ob die Bestellwarteschlange nicht leer ist und solange sie nicht leer ist.
‫Solange sich die Bestellungen in der Warteschlange befinden, ist count größer als null.
‫Wir werden diese while-Schleife ausführen und die Reihenfolge am Anfang der Warteschlange entfernen.
‫Also sozusagen die Reihenfolge, die zuerst eingegangen ist, und in einer Variablen namens current order speichern.
‫OK, wir haben also dieses Auftragsobjekt, das als aktuelle Bestellung bezeichnet wird und im Grunde
‫das Ergebnis der Warteschlange des ersten Elements unserer Auftragswarteschlange ist.
‫Also im Grunde genommen zuerst dieses Element, dann dieses Element, dann dieses Element, dann dieses Element,
‫dann das und das, OK, und dann wird jeder einzelne Schritt für Schritt verarbeitet.
‫Die Verarbeitung in unserem Fall ist also etwas sehr Einfaches und wir drucken es einfach auf die Konsole.
‫Aber natürlich könnte man hier auch etwas komplexeres im Hintergrund laufen lassen.
‫Dies kann einige Ereignisse auslösen, beispielsweise das Versenden einer E-Mail an einen Mitarbeiter, der
‫sich darum kümmern muss, oder an ein beliebiges Verarbeitungssystem, das Sie in Ihrem Unternehmen verwenden.
‫Gut.
‫Und ja, das ist es im Grunde.
‫Lassen Sie uns nun diese Anwendung ausführen, um die Ergebnisse zu sehen und zu sehen, dass Bestellung
‫eins verarbeitet wurde, Bestellung zwei verarbeitet wurde, dann Bestellung sechs, dann drei, vier, fünf.
‫OK, also wir bearbeiten die Aufträge natürlich in der Reihenfolge, in der wir sie damit in Ordnung gebracht haben, wir führen
‫sie aus.
‫Sie können hier sehen, dass wir uns zuerst von Filiale eins und dann von Filiale zwei in der Warteschlange befinden.
‫Stellen Sie sich also für das folgende Szenario vor, in dem die Aufträge intern im
‫System erstellt werden, aber zuerst akzeptiert und vollständig an die verarbeitende Entität weitergegeben werden müssen, was auch immer diese Entität
‫ist, wie zum Beispiel auch das andere Büro.
‫Und sie tun es zum Beispiel am Ende des Tages.
‫Also beendet First Branch eins ihre Mitarbeiter und sie sagen, OK, gut, wir nehmen diese Bestellungen an.
‫Und dann später an diesem Tag, weil sie sich beispielsweise in einer anderen Zeitzone befinden.
‫Zweig zwei sagt zum Beispiel: Ja, wir sind uns einig.
‫Nun, wir versenden unsere Bestellungen auch so, wie sie zu diesem Zeitpunkt genehmigt wurden, und dann wird mit der Bearbeitung begonnen.
‫OK, so könnte man zum Beispiel dieses Beispiel betrachten.
‫Rechts.
‫Ansonsten würdest du sie natürlich gleich nach ihrer ID oder nach dem
‫Erstellungszeitpunkt bestellen.
‫OK, alles klar.
‫Jetzt haben Sie also eine gewisse Vorstellung davon, wie diese Bestellungen funktionieren und wie die Warteschlangen funktionieren.
‫Das ist der wichtigere Teil.
‫Sie können jetzt also Ihre eigenen Warteschlangen erstellen und in Ihren Anwendungen verwenden.
‫Gut.
‫Daher hoffe ich, dass dir dieses Video gefallen hat.
‫Wir sehen uns im nächsten.