[Playlisten] [Impressum und Datenschutzerklärung]

05A.2 Collections richtig anwenden, Array, List, Queue, Stack, Dictionary


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

imSeminar gesagt schade drum dass sich eine Klassezum Beispiel ?? Artikel habe Punkt soll ich da reinschreibt sollte und schreiben eine KlasseArtikel habeaußerhalb derKlasse hierhabendie beschreibt was in irgend ein Warenlagerund irgendeinenVersand ladenzu haben ist an Gegenständenanund ich möchte jetzt einenWarenkorbbauenindem man Artikel ablegen kann und sich jedem Artikel auch nach Anzahl hatdasdümmste was ich mir vorstellen kann ist folgendeswas ich sage okay alle Artikelin den Warenkorbschmeiß ich vielleicht mal in ein Raydas die Artikelunddazu Beistrich doch mein getrenntes Problem mit an Saint Interjo beruhigendals das Ferienziel Sharpdannin dendie anzahlenjeweils drinstehendass sie nachher hierin der Artikelreihehaben okay folgendes BuchBeispiel Krieg und Frieden und dann folgende CD und folgende DVD und noch ein anderes Buch und hier dem Ray stehtdrei von meinen fünf von dem anderen sieben von dem nächstenwas wäreprogrammiertechnischihren gefährlich wenn ich das so äußern möchte das so Darstellermeinen Warenkorball das ist das wesentliche Problem die beiden sind entkoppeltes kann seindass die anzahlen anders verwickelt sind als die Artikeldass ein ?? fünf fünf malbestellt haben und nachher haben sie fünfmal die letzte Madonna Scheibe bestelltweil diese beiden weiß vielleichtjemand anders unsortiert worden sind es kann sein dass sie vielleicht mehr anzahlen haben als Artikel Zimbabwe habenam Ende von Anzahl oder umgekehrten Artikel zu viel haben nicht genug Anzahldass es ihr gefährlichundim Seminar hat mir schon eine Lösung dafürist die Lösungum die miteinander zu koppelnich baue in der Tat eine neue Klasse eine Klasse die einen Artikel und eine Anzahl umfasst dann können Sie die nicht mehr auseinanderreißendas war ja auch schon der Grundin C zum Beispiel für Strukturenund hierKommaKlassen und oben reingezogen AbstractKlammer zu mal erklärt ich dass es immer bei Klassemuss ich ganz kompetent zu machen ?? Seminar underscore Position genannt ?? eine Positionin dem Warenkorbnicht auf die Tipps und Ebene sollen im Warenkorb und da gehört ebeneinmaleine Referenz auf einen Artikel dazueine Referenz auf einen Artikelwirklich mal klein geschrieben Artikel dahinterals der Typ ist Artikelgroß geschriebenKlasse der Name der Klasseund Artikel klein geschrieben ist der Namedes Attributs trennen und ich entdeckten hier gerne noch ein anscheinendindischerfür die Anzahlso könnte man das bauenund mit dieser Klasse sind die jetztfest miteinander verschmolzenArtikelund Anzahlwenn ich die auseinanderreißenBilder muss ich tatsächlich schon kompliziert hier die Klasse Position reingehendann der nächste Schritt wäre also ein Gerät zu bauendas aus solchen Positionenbesteht?? kann diese Welt tatsächlich den Warenkorb nennen sinnvollerweiseeinen Korbdas wird jetzt alsoein Jahr eine Aufzählungvonverschiedenen Positionen und jede dieser Positionen hat eben einen Artikel eine Referenz auf eine schicke Versionund eine Anzahlandas macht mich auch immer noch nicht total glücklich was ist nun noch ein Problem was ich nicht prinzipiell damit vermieden habe ja das Problem prinzipiell vermieden jetzt das Artikel und anzahlenauseinandergerissenwerden können das habe ich jetztschön vermieden aber es gibt andere Probleme dich immer vermieden habewas kann jetzt noch allesmich ärgernja der Ärger das Problem mit der Größe von ?? weil wenn sie einmal dieses Event angelegt haben wenn sie sagen ich baue mein Warenkorb für zwei ?? für dich solche Positionder Speicher das sind eben zwei ?? für die solche Position maximal und eines FeierabendKomma sie dreiundvierzig der haben wollenmüssen Sie das ?? neu bauen und die vorherigen zwei ?? vierzig Elemente da reinkopierenoder wenn sie nur fünf brauchendas sind die übrigen bis zu zwei vierzigsten bis zwanzigstenleer dass es auch nicht ??also wäre es schön wenn ich von vornherein weiß wie viele es sind und sich die Anzahl auch nicht ändertdannwenn sie fast mit Geometrie machen X Y Z im Raume wissen sie es sind drei und es werden plötzlich zwei Hundes werden nicht plötzlich vier dann nehme ich in ?? Ray vielleichtsinnvollerweisedas drei Einträge hataber jeweilige Warenkorb ist überhaupt keine schöne Idee weil dessen Größe sich natürlichsekündlich ändern kann damit sich neues Gerät bauen und die alten Sachen rein kopieren und so weiter das nervt total dafür gibt esdas ?? ?? Seminar gesehen dafür gibt esdiesendiese Kollektionals das in sie sharpDatensammlung?? Kollektion anderswo heißen Containereinnahmennamens Listdie anderswoVektor heißt hier als Zivilistin ?? ordnet sie Schadenhabeneine Liste die Positionenspeichern kannReferenzenaufInstanzender Klasse Position speichern kann so sitzt ?? ausund hier muss er natürlichdiese neue Liste gebaut werden also nurdes persischen und hier runde Klammer zu?? Kontakte aufzurufenkann ?? an der Stelle auch noch mal sagen ?? gerne durcheinander geht hier vorne sage ich dieser Warenkorbist eine Variabledie eine Referenzauf so eine Liste enthält die Position speichertReferenzen auf Position speichert ganz genauPunktim Endeffekt dachte nach ?? der Warenkorbist eine Liste von Positionen aber ganz genau wissen inzwischen ist das ja nicht so der Warenkorb merkt sich nur die Hausnummerwo denn diese Listesteht im Speicher und Tisch und diese Liste merkt sich auch nur von Position die HausnummerReferenzenan und nicht die echtenDatenund diese ließ dir muss ich dann erst mal überhaupt bauen ihr hinten sagen sie okay wird erzeugt man eine leere Liste hier steht der Name des Kostfaktorsgleichzeitig der Name klassemit den runden Klammern sagen sie Rufe linker Faktor aufihrer Seite will jetzt nicht irgendwie Extradaten noch harmlos besser wäre Klammern um ihn einfach so aufzurufendas war der Standaus demSeminardas ist noch nicht total perfektaber schon mal nicht schlechtetabliert was das wachsen kann?? schrumpfen kannund etwas in demArtikel und Anzahl nicht durcheinandergeratenkönnenspezielle Komma was zu den anderenKollektionscontainerndie Masse typischerweise braucht es gibt viel mehr aberdie guckt man dann in der Doku nachamWasserdas Risiko wettmachen ?? Gräber das einfachste von allen feste Größeziemlich dumm aber dafür schnellamListin spitzen Klammern geben sie anwas für Typen denn aufgelistetwerden soll das kann wachsendann gab's zwei ganz besondere Stackrichtigschreibe so Stackundzu lustigen Schreibweisedie EUdie erStack und Queuemachen diese beiden Rufe sind die Last der Konditiondas schöne klassische Beschreibunghinaus Deck funktioniert wie in Stapelbücherandas nächste Element was ankommtlegen sie auf den Stapel draufund dann das nächste was ankommt den sie wieder auf den Stapel drauf und so weiter dann gibt's eine Funktionum ?? vom Stapel runter zu nehmenund die nimmt eben immer nur das oberste runter nicht das mittendrin sondern sie nehmen immer nur das oberste runter will sagender letzte der draufgelegtworden istder letzte Tag der letzte der draufgelegtworden ist ist der ersteder wieder runter genommen wird?? last infirst aus LIFO iPhoneKommaletzterer einerst herausdie Queue funktioniertumgekehrt eine Warteschlange wie beim Beckerzehn Leute in der Warteschlangedererste der reingekommenist das es auch der erste der dran kommt der sein Brötchen kriecht der letzte muss ganz lange wartendas heißthintereinandervorne rausdas heißt dass es ?? first in first aus FIFOdas ist die Queue das hatten wir letztes Semester schon in C ganz üblicheDatenstrukturdannsehen Sieirgendwelche Anwendungen für Stack und Queue in diesem Szenariofür WarenlagerbestellungenalsoEditionhier für die Bestellung Verwaltungdannwenn die Bestellungen reinkommenwenn die Irgendwo dann im Versand aufschlagenund der Versand sollte gefälligst in der Reihenfolgedes Eingangs abarbeitendass dieersten Bestellungen Fürstin auch die ersten sind First Audi wieder rausgehenalso gefälligst gibt es so eine Warteschlangeeine Queuein der die Bestellungen eingereiht werdenund die älteste Bestellungdie die zuerst gekommen es ist gefälligst auch die wieder zuerstbearbeitet wird für den Stack für sich auf Anhieb in dem Szenario nichts aber für die Warteschlange auf jeden Fallaber keins von den beiden schreit irgendwie so nach dem Warenkorbhabennoch einen bei dem Bericht auch bewenden lassen des Dictionarydasist ganz besonders raffiniertDictionarywie das Wörterbuchhaben das hat auch was mit alphabetischer Sortierung zu tun dass gleich aber erst malsich das Wörterbuch an spielschauendentstehtstehen immer zwei Sachen bei jedem Eintrag es steht dieErde WasserwörterbuchSame das englische Wort und dahinter steht die deutsche Übersetzungimmer zwei Sachen bei jedem Eintrag das ist dochkomisch bei der Liste der steht erst mal?? Liste von ganzen Zahlen oder Liste von Zeichenketten eben bei uns Liste von Positionenaber in der Liste stehen erst mal nur einfache Sachengenauso in dem Stapel ihrStapel von Büchern jeweils ein Ding und in der Warteschlange steht jeweils eine Person Benediktiner werde zwangsläufigimmer zwei Sachen pro Eintragdas Original Wort und seine Übersetzung in die Funktion auf das Telefonbuchder Nameund die Telefonnummerimmer zwei Sachendas Essen wird bei dem wechselndeSüchtige dann auch übrigens zwei Typen in den spitzen Klammernein Typ Komma ein anderer Typ was istdas was ich danach schlage die linke Seite und nach dem Komma was ist das was ich dann rauskriegeaus dem Wörterbuchüber das englische Wort links haben das was sie nachschlagen und das deutsche Wort rechts haben das was sie rausholendass es die Besonderheit von den Wörterbuchbestandeseingebautezwei teilige hierobendreinsortiert man dannbeim realen Wörterbuch was denn gedruckt wird sortiert man alphabetischdurch aber das hilft eigentlich nur beim findenich sortiere hier die linke Seite durch die englischen Wörter im Zweifelsfall oder ein TelefonbuchdieNamen sortiere ich alphabetisch durch damit ich schneller das finden kann was ich suche?? der Daten innerhalb derselben können Telefonbuch nehmen oder auch im Wörterbuch nehmenund sortieren die wild durcheinander die Wörter Hauptsache es steht immer engbeieinanderes ist ein super Ineffizient Boston zu findenaus wäre trotzdem ein Wörterbuchbitte sich zu viel davon verkaufen scheintdas wissen die merkbaren Wörterbuch ist das siezweiDaten pro Eintrag habenSchlüssel und wer hat's dann geht's mir dann gerade der hier ist der Schlüsselschlüsseletwas aufdas guck ich nach Schlüsselder Kidashier ist der WertValuewas stehtunter diesem Schlüsselsofort in der Sectiondas heißt anderswo gerne auch mal mehrwie die Abbildung oder die Karteamoderals offiziell assoziativesArrayleider für diese fortgeschrittenenDatenstrukturendann zunehmend mehr Namenje nach Historiedes jeweiligen Systemsnunwenn sie sich das nächste Navi anguckenund an die Situation von eben denken mit dem Warenkorbwasfällt Ihnen da aufals offensichtlicher wurde natürlich ist das Schlüssel und der zusammenhängen wenn sie das Dictionary um sortieren wir dann natürlich Schluss und wird immer zusammenklebenlassen ?? linke Spalte sortiert automatisch die rechte Spalteauf die gleiche Art mit Sortierenanes gibt aber noch tiefere Geschichte wenn Sie sich die Liste anguckenam wir haben zum Beispielüber Krieg und Friedenwirdfünfmal bestelltKlassensatz wie auch immer sonst was sonst was sonst was wird bestellt als Listeund dann sei Krieg und Friedenbitte nochmals extra bestellt und so weiter und so weiter und so weiter mit einer Liste würde das gehen?? die Positionenin der Liste hier oben das es Position Nummer eins Position Nummer zwei tausend Komma noch ?? Positiondannsehen Sie worauf das Wörterbuchachten würdeja dieses abstrakt mathematische Wörterbuch wird dafür sorgen das gefälligst nur einen Eintrag auf der linken Seite Krieg und Frieden gibtim realen Wörterbuch ist das natürlich nicht so wir haben linksdannwas weiß ich zu helfen ?? tausend Bedeutungenund es gibt ein Wort einmal als Substantivund einmal als Verb und so weiterwerdenhierwird es erzwungendas linksjeder Schlüssel nur einmal vorkommtsonst etwas auf die FingerthemaExceptionszweite Hälftewar nachherhoffentlich nochals in diese dann Struktur ist das eingebautdas jedeslinks jeder Schlüssel nur einmal vorkommen darf wir werden also zwangsläufigimmer das Verwendensich schnell ?? immer zwangsläufig die noch nicht noch mal eingeben dürfen sondern werden wir dafür sorgen müssen dass die beiden zusammengezähltwerden müsse damit automatisch tunaber wird es auf jeden Fallverbietendasselbe noch mal anzulegendas wäre also eine klügereDatenstruktursagt mir Sicherheit eingebautich kann mich mehr drauf verlassenich muss weniger Fehlerbedenkensind paar Fehler prinzipiell ausgeschlossenbasiert dann ein DictionaryDictionaryund sie müssen es eben zweiangebenPosition in der Mittelklasseposition?? hat sich jetzt überlebt?? ich sageich speichere Artikelund zu den Artikelnspeichere ich anzahlen Sinnes hier mit der Mausein Jahr ähmlinks steht der Typ des Kies des Schlüssels Artikelund rechts steht der Typ des Wertsich kann jetzt also Artikelabfragenund es sich gibt mir die Anzahl zurück so würde ich das beijedemArtikelEnt in der Formunnatürlich konstanter Aufruf soso sähe das dann ausmit einer männlichen bisschenlänglicheraber ich hoffe das zu verstehen ist es eben zwei Typen anzugeben ein Typ für den Schlüsselund ein Typ für den Wertmithilfe von Artikelnguck ich nach was die WerteDoppelpunkt Sie mithilfe von englischen Wörtern nachwas die Deutschen sind String zwingt die Worte ganz Wörterbuch ??habe ich imArtikel ich nach schlagedas mal als Ideewozu dieseverschiedenen?? hier wozu diese verschiedenenKollektionSack eines weißen Containerda sein könnenund ich glaube wenn sie den ?? Benedikt haben den Dictionary kann sich vorstellen auf das lässt sich weiter treibendavon sicherlich noch Dutzend weitere ?? die kommen da nicht so häufig vor Komma muss aber im Hinterkopf habenirgendjemandirgendwo auf der Welt hatte schon ?? hingesetztund lauter solche Klassen gebautund im Zweifel vergrub man eben nach was schon allesgratis zu haben dass sie sie zu den wichtigstenfünf vier