Transkripte
1. Einführung: Codierung kann sehr herausfordernd und dennoch extrem angenehm sein. Hallo an alle. Ich bin Hadi Einheiten und das ist Programmierung für alle. Nun, wenn Sie nichts über Programmierung
wissen, sollten Sie mit den beiden vorherigen Klassen beginnen. Und das erste haben wir Java und Eclipse verkauft und
lernen einige grundlegende Konzepte wie Datentypen,
Entscheidungsfindung, Loops und vieles mehr kennen, aber alles in einer allgemeinen Weise. Und in der zweiten Klasse mit einer tieferen zu diesen Konzepten von der Erstellung von Klassen und Objekten, tun Sie mit Arrays und ArrayLists. Jetzt werden
wir in dieser Klasse einige alte und neue Konzepte erforschen. Einige von ihnen sind bereits in
der ersten Klasse erwähnt , dass wir hier auf den Grund von ihnen kommen. Mit dem gesagt, können
Sie beginnen und ich hoffe, Sie genießen es.
2. Material: Wie üblich beginnen wir mit unserem Material. Also, was werden wir abdecken? Zuerst werden wir über Vererbung sprechen, und dann werden wir Polymorphismus einführen und wie man es über Vererbung benutzt. Und dann werden wir ein neues Konzept in der Programmierung, Rekursion und wie man es benutzt. Danach wird sich zu Sortieralgorithmen bewegen. Wenn wir also, wenn wir ein Array oder eine Array-Liste von Ganzzahlen,
Strings, Zeichen haben, werden wir lernen, wie man sie löst. Und dann werden wir über die Suche von Algorithmen sprechen. Wenn wir also eine bestimmte Ganzzahl haben, zum Beispiel, wie man sie in einem bestimmten Array findet. Und schließlich werden wir über Big Integer-Klasse sprechen. Danach werden einige Probleme zu jedem Thema wie gewohnt lösen. Und schließlich haben wir unser Projekt. Das ist es also. Und fangen wir an.
3. Inheritance: Zunächst einmal beginnen wir mit der Vererbung, grundlegende Technik zum Organisieren und Erstellen von Klassen. Es ist eine einfache, aber leistungsstarke Idee, die implementiert ist die Art und Weise, wie wir objektorientierte Software entwerfen. Sie können sagen, dass eine Klasse für ein Objekt ist, was ein Blueprint zu beherbergen ist. Viele Häuser können aus dem gleichen Plan erstellt werden. Sie sind im Wesentlichen das gleiche Haus an verschiedenen Orten mit verschiedenen Menschen leben in ihnen. Nehmen wir an, Sie möchten Haus, das einem anderen ähnlich ist, aber mit einigen anderen oder zusätzlichen Funktionen. Sie möchten mit dem gleichen grundlegenden Blueprint beginnen, ihn
jedoch ändern, um neuen, etwas anderen Anforderungen gerecht zu werden. Viele Wohnsiedlungen schaffen auf diese Weise. Die Häuser in der Entwicklung Haben die gleiche Kern-Layout, aber sie haben einzigartige Eigenschaften. Zum Beispiel könnten sie alle
Split-Level-Häuser mit der gleichen grundlegenden Bräutigam Konfiguration sein , aber einige haben einen Kamin oder vollen Keller, während andere nicht. Nun, über die Vererbung,
enthält die neue Klasse automatisch die Variablen und Methoden in der ursprünglichen Klasse, und dann verlassen sie die Klasse nach Bedarf. Der Programmierer kann der abgeleiteten Klasse neue Variablen und Methoden hinzufügen oder die geerbten ändern. Die ursprüngliche Klasse, die verwendet wird, um eine neue abzuleiten, wird die Bandklasse,
Superklasse oder Basisklasse genannt . Also hier ist der Elternteil von Pictionary und das Glas. Die abgeleitete Klasse wird als untergeordnete Klasse oder Unterklasse bezeichnet. Und Java verwendet das reservierte Wort extends, um anzuzeigen, dass die neue Klasse von einer vorhandenen Klasse abgeleitet wird. Nun sollte der Prozess der Vererbung etablieren ein ist eine Beziehung zwischen zwei Klassen. Also haben wir eine Beziehung zwischen Buch und Wörterbuch. Das heißt, die untergeordnete Klasse sollte eine spezifischere Version der übergeordneten Klasse sein. Zum Beispiel ist Wörterbuch ein Buch, aber nicht alle Bücher sind Wörterbücher. Nun, wenn eine solche Aussage keinen Sinn ergibt, dann ist diese Beziehung wahrscheinlich keine angemessene Verwendung der Vererbung. So können wir jetzt die Verwendung einer geerbten Methode demonstrieren. Zum Beispiel haben wir Worte, wir haben hier unsere Hauptmethode. Und Wörterbuch wird drei Methoden haben. Computerproblem, Festlegen von Definitionen, Abrufen von Definitionen und eine variable Ganzzahl. Und schließlich unsere Elternklasse, das Buch. Wir haben eine Variable n und zwei Methoden setzen Seiten und erhalten Pfirsiche. Lassen Sie uns voran und erstellen Sie unsere drei Klassen. Wir haben Cook und V8 Wörterbuch. Und schließlich, Wort. Brille Also lassen Sie uns jetzt mit Buch beginnen. Dies ist also die übergeordnete Klasse der abgeleiteten Klasse, um sie zu verwenden, um Vererbung zu demonstrieren. Also haben wir Gemüse und ganze Zahlen, sagen
wir, ist geschützt und dann wird es später erklären. Und Sie Seiten gleich 1500 Seiten. Und wir haben zwei Methoden. Zunächst einmal setzen Seite, die Pager ist, geben Sie ihm einen Wert von Integer als Parameter, num, und dass die Seiten gleich diesem Wert. Also jetzt statt die Strände und doch Strände, um den Wert der Seiten zurückzugeben. Wir geben nur Seiten zurück. Nun, was ist die geschützte modifiziert? Wie wir gesehen haben, werden die Sichtbarkeitsmodifikatoren verwendet, um den Zugriff auf die Mitglieder einer Klasse zu steuern. Dieser Effekt erstreckt sich auch auf den Prozess der Vererbung. Daher können private Methoden und Variablen der übergeordneten Klasse
nicht in der untergeordneten Klasse oder über ein Objekt der untergeordneten Klasse referenziert werden. Und wenn wir eine Variable mit
öffentlicher Sichtbarkeit dafür deklarieren , so dass die abgeleitete Klasse darauf verweisen kann. Wir verletzen das Prinzip der Verkapselung. Daher bietet Java eine dritte Sichtbarkeitsmodifikatoren geschützt. Also verwenden wir geschützte. Wir können Zugriff auf diese Variable und unsere Kind-Klasse haben, Wörterbuch. Nun, es ist gut, Wörterbuch. Und hier haben wir unsere Wörterbuchklasse. Also diese Klasse, Wörterbuch, das ein Buch ist, sie sind von der Buchklasse abgeleitet. Also lassen Sie uns dieses Klassenkamer-Wörterbuch speichern. Wir haben drei Methoden und eine Variable. Lasst uns privat benutzen. Ändern Sie diese Definition zum Beispiel auf 2005500. Aber wir haben 52.500 Definitionen. Lassen Sie uns nun unsere erste Methode erstellen , um das JHU-Problem zu berechnen. Nun, wie gesagt, wir können und das Buch verwenden, weil wir sagten, sie als geschützt. Und berechnen Sie die Verhältnisse, wir geben einfach eine W-Definitionen geteilt durch das Problem zurück. Es tut mir leid, über wie viele Seiten, Alter und Ausgabe wir von der Arbeit erweitert. Und jetzt haben wir beide Ruhe-Methode. Nun wird Methode Definitionen gesetzt. So wie üblich, Nationen mit Taub. Und wir sagten, dass Kliniker gleich neun sein. Und schließlich haben wir die get-Definitionen, um zurückzugeben, wie viele Definitionen es
eine Integer-def-Definitiongibt eine Integer-def-Definition ohne und einfach Definitionen zurückzugeben. Also, jetzt sind dies unsere Methoden und lassen Sie uns voran gehen und sie in unserer Weltklasse verwenden. Also er nach außen Klasse. Das ist also unsere Hauptmethode und unser Objektwörterbuch in emittiertem W. Jetzt lassen Sie uns damit arbeiten. Also haben wir eine Methode. Lassen Sie uns die Anzahl der Seiten drucken. So Anzahl der Seiten. Und du wirst „Get Strände“ benutzen. Wir haben noch zu beenden überspringen Seiten. Und wenn wir voran gehen und diesen Code ausführen, erhalten Sie Anzahl der Seiten, einhundertfünfhundert. Und lassen Sie uns auch die Anzahl der verschiedenen Definitionen drucken. Wir würden Definitionen
und Definitionen sagen . Also haben wir 52.500 Definitionen. Und schließlich, lassen Sie uns sie durch einfache Definitionen berechnen. Also nicht, wie viele Definitionen, die in der Seite und verwenden Sie W.com und drucken Sie es aus. Wir bekommen Definitionen. fünfunddreißig Definition. Nun, denken Sie daran, dass wir auch Seiten gesetzt und Definition festgelegt haben. Also zum Beispiel, wenn wir die Seiten ändern wollen, verwenden Sie
einfach W dot set. H ist zum Beispiel zehn und Nationen für Qualität. Und wenn wir die Definitionen drucken, Seite noch einmal, eine andere Zahl, die gleich vier ist. Das ist es also für dieses Video. Wir sehen uns im nächsten.
4. Super: Jetzt haben wir auch eine Referenz, mit der wir vertraut sein sollten. Dies, die Superreferenz. So kann das reservierte Wort Super in einer Klasse verwendet werden, um auf seine übergeordnete Klasse zu verweisen. So können wir Zugriff auf das Mitglied eines Elternteils haben, indem wir die Superreferenz verwenden. Nun hängt das Wort super von der Klasse ab, in der es verwendet wird. Zu. Jetzt können wir demonstrieren, dass die Verwendung von überlegener Referenz bleibt. Mit diesen Beispielen. Wir haben unsere Weltklasse-Routen, wir haben unsere Hauptmethode, und wir haben das Wörterbuch, und wir haben das Buch erweitert. Und schließlich haben wir unsere Klasse. Nun, nehmen wir an, wir haben in unserem Buch einen Konstruktor. Also, das setzen Sie hier einen Konstruktor und
sagen, dass der öffentliche Sektor den gleichen Namen wie Glas hat. Und lassen Sie uns einen Parameter von Ganzzahlen geben, die Anzahl der Brücken ist. Und in diesem Konstruktor
setzen Sie die Seiten so zurück, dass sie den Stränden entsprechen, die vom Konstruktor angegeben wurden. Und jetzt ist dies unser Konstruktor in der Buchklasse. Lassen Sie uns nun einen anderen Konstruktor in Wörterbuch-Klasse erstellen. Also haben wir einfach Outlet Dictionary erstellt und wir geben ihm den Wert zwei Seiten und Definitionen. Lassen Sie uns dies in die Also ändern wir zuerst die Definitionen gleich Definition. Und so kann
ich jetzt den Super aufrufen, den Konstruktor
des Elternteils mit der Superreferenz. Alles klar, super und gib ihm den Wert der religiösen. Und jetzt benutzen wir das Super. Der Dictionary-Konstruktor nimmt also zwei ganzzahlige Werte als Parameter. Wir haben Seiten und Definitionen die eine Reihe von Seiten und eine Reihe von Definitionen im Buch darstellen. Da die Buchklasse bereits einen Konstruktor hat, der die Arbeit
ausführt, um den Pfad des geerbten Wörterbuchs einzurichten. Wir verlassen uns auf Deck Konstruktor, um diese Arbeit zu erledigen. Anstatt also zu sagen, dass Seiten gleich der, dieser Basis, verlassen wir uns einfach auf diesen Konstruktor der Klasse und sagen super. So wird es an den Konstruktor in die Buchklasse gehen und die Seiten, die diesen Seiten gleich sind. Jetzt ist ein aufgeladener Konstruktor dafür verantwortlich, den Konstruktor seines Elternteils aufzurufen. Im Allgemeinen sollte die erste Zeile des Konstruktors den Superreferenzaufruf an den Konstruktor des Paares
verwenden. Und wenn kein solcher Code existiert, wird
Java am Anfang des Konstruktors automatisch einen Aufruf an super machen. Diese Regel stellt also sicher, dass offenbar
seine Variablen initialisiert , bevor der Konstruktor der untergeordneten Klasse mit der Ausführung beginnt. Die Verwendung der Superreferenz zum Aufrufen des
Advance-Konstruktors kann nur der untergeordnete Konstruktor durchgeführt werden. Und wenn enthalten, muss es die erste Zeile des Konstruktors sein. Daher kann die Superreferenz auch verwendet werden, um auf
andere Variablen und Methoden zu verweisen , die in der Elternklasse definiert sind. Und wir verwenden diese Technikdaten. Über die Mehrfachvererbung wird
Javas Ansatz zur Vererbung als einzelne Vererbung bezeichnet. Dieser Begriff bedeutet, dass die abgeleitete Klasse nur ein übergeordnetes Element haben kann. Einige objektorientierte Sprachen ermöglichen es einer untergeordneten Klasse, mehrere Bänder zu haben. Dieser Ansatz wird als Mehrfachvererbung bezeichnet und ist gelegentlich nützlich für die Beschreibung von Objekten, die sich zwischen zwei Klassen befinden. Nehmen wir zum Beispiel an, wir hätten eine Klasse und den Klassenwagen. Und wir wollten eine neue Klasse namens Pickup-Truck schaffen. Ein Pickup-Truck ist etwas wie ein Auto und etwas wie ein Lkw. Mit einzelner Vererbung, müssen wir entscheiden, ob es eine bessere ist, ob es besser ist, den neuen Klassenzimmer Kerl von LKW mit Mehrfachvererbung ableiten, kann
es von beiden abgeleitet werden, wie in dieser Abbildung gezeigt. Mehrfachvererbung funktioniert gut in einigen Situationen, aber es kommt mit einem Preis, wenn es sowohl LKW als auch Auto Methoden mit dem gleichen Namen haben. Welche Methode? Pickup-Truck erben? Die Antwort auf diese Frage ist komplex und hängt von den Regeln der Sprache ab, die die Mehrfachvererbung unterstützt. Die Designer der Java-Sprache
entschieden sich explizit dafür, die Mehrfachvererbung nicht zu unterstützen. Stattdessen können wir uns auf Vererbung und Schnittstellen verlassen, um
die besten Funktionen der Mehrfachvererbung ohne die zusätzliche Komplexität bereitzustellen . Obwohl eine Java-Klasse nur von einer übergeordneten Klasse abgeleitet werden kann, kann mehrere Schnittstellen implementieren. Daher können wir mit einer bestimmten Klasse auf spezifische Weise mit Vererbung und Schnittstellen interagieren , während wir die Kerninformationen von einer Elternklasse erben und Schnittstellen verwenden. Und wir werden später über Schnittstellen sprechen. Das ist es also für die Super- und Mehrfachvererbung. Im nächsten Video erfahren Sie, wie eine untergeordnete Klasse die übergeordnete Definition einer geerbten Methode überschreiben kann.
5. Übergeordnete Methoden: Wechseln Sie zu überschreibenden Methoden. Wenn eine untergeordnete Klasse eine Methode mit
demselben Namen und derselben Signatur wie eine Methode in der übergeordneten Klasse definiert , sagen
wir, dass die Jungfrau des Kindes die Version des Elternteils zugunsten ihrer eigenen überschreibt. Die Notwendigkeit des Überschreibens tritt häufig in Vererbungssituationen auf. Lassen Sie uns also voran gehen und die Verwendung einer überschriebenen Methode demonstrieren. Erstellt ein neues Paket, benennen Sie es über. Richtig? Und, und dieses Paket wird drei Klassen erstellen. Die erste werden wir es Nachricht nennen. Der zweite wird zweimal sein. Und schließlich werden wir eine Klasse namens Gedanke erstellen. Also haben wir drei Klassen. Und die Nachricht. Hier haben wir unsere Hauptmethode und wir werden es später bearbeiten. Aber für jetzt werden wir Laster und Gedanken verbinden. Also an der dritten ist abhängig Klasse und die Ratsklasse ist das Kind erweitern. Und lassen Sie uns die gleiche Methode erstellen. Die gleiche Methode und die beiden Klassen. Also in Gedanken, würde eine öffentliche Sprachnachricht ohne Parameter erstellen, einfach drucken. Dies ist die Nachricht des übergeordneten Elements. Und die Ratsklasse würde die gleiche Methode haben. Öffentliche, öffentliche Nachricht. Ohne Parameter druckt es einfach. Dies ist eine Nachricht von der Klasse. Und wir werden die super,
super.message verwenden, um explizit die Eltern Jungfrau aufzurufen. Nun, lassen Sie uns voran und verwenden Sie hier einen Fehler undefiniert für die Zeit. Sie müssen das und alles richtig speichern. Und jetzt gehen wir zu unserer Nachricht. Lassen Sie uns zwei Objekte verwenden. Einer für Rat, Sie haben Rat, einen neuen Rat, und das Gleiche für den Nachnamen und das Neue. Jetzt werden wir die gleiche Methode in den beiden Pluspunkten verwenden. Also sagen wir eine.me und die Nachricht, die sie tauscht, verwenden Sie zuerst diesen Schlüssel und drucken dann eine Zeile. Also mal sehen, was passieren wird. Also haben wir ausgedruckt, dass dies eine Nachricht von der übergeordneten Klasse ist und dann ausgerichtet ist. Das ist also unsere Ausgabe von D, diese Nachricht. Und dann ist dies die Ausgabe von einer, diese Nachricht. In einer Nachricht wird erhalten, dies ist eine Nachricht von der Child-Klasse. Und dann, da wir hier benutzt haben, den Super, haben wir was angerufen? Die Botschaft in der dritten Klasse, die wir hier haben. Dies ist eine Nachricht von der übergeordneten Klasse, daher drucken wir eine Nachricht von der übergeordneten Klasse aus. Nun kann eine Methode mit dem endgültigen Modifikator definiert werden. Und dann kann Jet-Kind Cass eine endgültige Methode nicht außer Kraft setzen. Diese Technik wird verwendet, um sicherzustellen, dass die abgeleitete Klasse eine bestimmte Definition einer Methode
verwendet. Und jetzt werden wir über Spiegeln von Variablen sprechen. Obwohl nicht für innerhalb der Klasse empfohlen, eine Variable mit dem gleichen Namen wie eine, die vom übergeordneten Element geerbt wird zu deklarieren. Nun gibt es einen Unterschied zwischen einer Deklaration einer Variablen und einfach einem von einem bestimmten Wert geerbten geben. Zum Beispiel, wenn wir eine Integer-Variable hier in der dritten Klasse haben, können
wir ihr einen Wert in der Rating-Klasse geben, aber es wird nicht empfohlen, sie als
beispielsweise eine Zeichenfolge oder als Double einzulösen . Nun schafft diese Erklärung Verwirrung, und diese Verwirrung verursacht Probleme und dient keinem nützlichen Zweck. Daher könnte die Array-Deklaration eines bestimmten Variablennamens seinen Stil ändern, aber das heißt, und normalerweise sollten unnötige und allgemeine Spiegelungsvariablen vermieden werden. Dies ist also zum Spiegeln von Variablen und Überschreiben von Methoden. Wir sehen uns im nächsten Video.
6. Class: Jetzt werden wir über Klassenhierarchien sprechen. Von einem Elternteil abgeleitete Child-Cast kann der Elternteil seiner eigenen Kinderbetreuung sein. So können mehrere Klassen von einem einzelnen Elternteil abgeleitet werden. Daher entwickeln sich Vererbungsbeziehungen oft zu Klassenhierarchien. Also hier, dieses Diagramm zeigt uns eine Klassenhierarchie , die die Vererbungsbeziehung zwischen Säugetier und Gastklasse enthält, zum Beispiel, Vogel und Papagei, Tier und Geburt. Es gibt keine Begrenzung für die Anzahl der untergeordneten Elemente, die eine Klasse haben kann, oder die Anzahl der Ebenen, auf die sich die Klassenhierarchie auf untergeordnete Elemente
erstrecken kann , werden gleichgeordnete Elemente als Geschwister bezeichnet. Also hier, Pferd und böse sind Geschwister. Obwohl Geschwister die vom gemeinsamen Elternteil übergebenen Merkmale vergossen, sind
sie nicht durch Vererbung verwandt, da eines nicht zum Ableiten des anderen verwendet wird. In S-Hierarchien sollten Features so hoch wie vernünftigerweise möglich in der Hierarchie
gehalten werden. Auf diese Weise
sind die einzige Eigenschaft explizit untergeordnete Umwandlung diejenigen, die die Klasse von ihrem übergeordneten und von ihren Geschwistern unterscheiden. Also zum Beispiel, wenn wir Methode im Tier haben, sagen wir es. Also fressen alle Tiere. Also behalten wir es in der Tierklasse. Allerdings fliegen nicht alle Tiere. So diese Methode fliegen, können
wir erstellt und die Vogelklasse. Auf diese Weise werden auch
Wartungsaktivitäten erleichtert , denn wenn Änderungen dauerhaft gemacht werden, werden
sie automatisch in den Nachkommen reflektiert. Denken Sie immer daran, die ist eine Beziehung beizubehalten, wenn Erstellen von Klassenhierarchien keine einzige beste Hierarchieorganisation für alle Situationen ist. Die Entscheidungen, die Sie treffen, wenn Sie eine Klassenhierarchie entwerfen, beschränken und führen detailliertere Entwurfsentscheidungen und Implementierungsoptionen. Also müssen Sie sie sehr sorgfältig nehmen. Sie zur Objektklasse in Java wechseln, werden
alle Klassen letztendlich von der Objektklasse einer Klasse abgeleitet. Definition verwendet die extends-Klausel nicht, um sich explizit von einer anderen Klasse abzuleiten. Und diese Klasse wird standardmäßig automatisch von der Objektklasse abgeleitet. Also, wenn wir sagen, zum Beispiel, lassen Sie uns eine Klasse erstellen. Und lassen Sie es uns nennen. Das Ding wird eine Klasse namens Ding haben. Diese Darstellung ist äquivalent zu sagen, erweitert Objekt. Da alle Klassen abgeleitet werden, werden einige Objekte auf öffentlichen Methoden eines Objekts von der API-Java-Klasse geerbt. Sie können über jedes erstellte Objekt und jedes Java-Programm aufgerufen werden. Die Object-Klasse ist im
java.lang-Paket der Java-Standardklassenbibliothek definiert . So haben wir einige Methoden in dieser Objektklasse, wie sich herausstellte, Objektmethoden verwendet, während oft in unseren Beispielen die toString-Methode zum Beispiel in der Objektklasse definiert
ist. So kann die Färbemethode auf jedem Objekt aufgerufen werden. Und deshalb überschreiben wir, wenn wir eine ToString-Methode und eine Klasse definieren, tatsächlich eine geerbte Definition. Die Definition für ToString, die von der Objektklasse bereitgestellt wird. Wir haben auch eine andere Methode, die wir mehrmals vorher sehen. Das entspricht es gibt true zurück, wenn das Objekt ein Alias des angegebenen Objekts ist. Klassen überschreiben oft die geerbte Definition der.equals-Methode zugunsten einer geeigneteren Definition. Zum Beispiel überschreibt die String-Klasse gleich, so dass sie nur true zurückgibt, wenn beide Zeichenfolgen die gleichen Zeichen in der gleichen Reihenfolge enthalten. Das ist es also für Klassenhierarchien. Wir sehen uns im nächsten Video.
7. Sichtbarkeit: Wie bereits erwähnt, alle Variablen und Methoden, auch private Member, die in einer übergeordneten Klasse definiert sind, von den untergeordneten Clubs geerbt. Sie existieren für ein Objekt der abgeleiteten Klasse, obwohl sie nicht direkt referenziert werden können, können
sie indirekt referenziert werden. Schauen wir uns ein Beispiel an, das diese Situation demonstriert. Lassen Sie uns voran und erstellen Sie ein neues Paket, und lassen Sie uns es nennen. Sichtbarkeit. Und in diesem Paket werden drei Klassen haben. Wie immer. Lassen Sie uns eine Klasse namens Lebensmittelanalysator erstellen. Und hier haben wir unsere Hauptmethode. Und noch eine Klasse. Nennen wir es. Zum Beispiel, Lebensmittel, Alaskas Beispiel. Wir nennen es Beta. Also, jetzt haben wir drei Klassen. Setzen Sie Analysator, Lebensmittel und Pizza. So ist der Fußteil abhängig Glas und Pizza erstreckt sich. Fuß ist einige Methoden
erstellen. Also NPDES wird erstellen, zum Beispiel, lassen Sie uns einen Konstruktor erstellen. Einfach öffentliche Pizza, geben Sie ihm einen Wert von GM und einfach die Super-Methode genannt und legen Sie Artikel, die Daten erstellen könnten. Also dies, zum Beispiel, dieses super Wir nehmen zwei Parameter,
die g, die wir von der Pizza-Methode bekommen. Und zum Beispiel, sagen wir acht. Und jetzt werden wir die Methode im Lebensmittelartikel erstellen, damit wir es besser verstehen. Jetzt, hier im Lebensmittelelement ist erstellen Sie drei ganze Zahlen. Wie erstellen private Galerien. 30 Gramm. Bringen wir es auf neun. Und noch ein Privates. Aber Gramm. Und schließlich, erstellen Sie eine geschützte. Jetzt lassen Sie uns unser konstruiertes erstellen und es wird zwei Parameter nehmen. Nennen wir es Nahrungsmittel. Und du nimmst zwei Parameter. Eine Anzahl von Petagrammen, Gramm, und die zweite ist die Anzahl der Portion, Portion. Also, jetzt, als wir den Super hier aufgerufen
haben, haben wir tatsächlich den Konstruktor genannt. Und die Lebensmittelklasse, es wird zwei Parameter nehmen, also haben wir zwei Parameter. Jetzt. Lasst uns weitermachen und es benutzen. Wir haben fette Gramm und so Banken. Also nur zugewiesene Fett Gramm gleich Anzahl der Gramm, die wir bereits vom Benutzer bekommen. Und das gleiche für die Portionen wird Anzahl der Portionen. Lassen Sie uns nun einige Methoden erstellen. Zum Beispiel, um die Kalorien,
Fett Gramm, multipliziert mit den Kalorien pro Pflanze zurückzugeben . Und eine andere Methode, um die Kalorien pro Portion zu berechnen, drehen Sie einfach Namen, Galerien, Portionen, und wir einfach Kalorien und geteilt durch die Serving. Also werden wir Galerien zurückkehren, um sich zu drehen. Terroristen werden die Methode Kalorien haben. Wir nennen es einfach mit Batterien und teilen es durch die Anzahl der Portionen, die wir haben die Anzahl der Portionen im Dienst. Und das ist unsere Kalorien pro Portionsmethode. Gehen wir jetzt weiter und verwenden Sie diese Methode und unsere Hauptklasse. Also kreieren wir eine Pizza. Pizza. Nennen wir es spezielle Pizza mit einem Wert von 275. Und lassen Sie uns die Kalorien pro Portion ausdrucken. Kalorien. Das ist pro Portion. Und wir werden spezielle Kalorien pro Portion und führen Sie den Code wird Kalorien pro Portion erhalten, 309. Nun wird die Pizzaklasse von der Lebensmittelartikelklasse abgeleitet, fügt
aber keine speziellen Funktionen oder Daten hinzu. Dieser Konstruktor ruft den Konstruktor des Lebensmittelartikels mit der Superreferenz auf und
behauptet, dass es sich um acht Portionen Pizza handelt. Das Pizza-Objekt hier genannt spezielle, ist in der Hauptmethode und verwendet, um die Methode Kalorien pro Portion aufrufen, die als eine öffentliche Methode der Lebensmittel definiert ist. Nun, hier sollte unsere Botschaft privat sein. Und was wir hier getan haben, ist, dass wir Kalorien pro Portion, was eine öffentliche Methode ist. Dann nennt diese Kalorien pro Portion Kalorien. Kalorien ist eine private Methode und Galerien genannt Fett Gramm und Erzähler pro Gramm, und sie sind auch privat. Also, was wir versuchen, hier zu sagen, dass, obwohl die Pizza-Klasse nicht explizit Kalorien,
Kalorien pro Gramm und fünf Gramm referenzieren kann. Sie sind für den direkten Einsatz verfügbar. Und das Pizza-Objekt braucht eine Kappe. Bizarre Objekt kann nicht das Zehnfache der Kalorien-Methode verwendet werden, aber es kann eine Methode nennen, die kann. Das Fußelementobjekt wurde also nie erstellt oder benötigt. Nun, da zum Beispiel Kalorien pro Gramm ist, sind
wir absolut sicher, dass es gleich neun ist. Wir können hier einfach private,
finale und den Stuhl hinzufügen . Was wir hier sagen, ist, dass diese Variable endlich ist und wir sie nicht ändern können. Nun, die anderen Verwendungen des endgültigen Modifikators umfassten Vererbung und können erheblichen Einfluss und Software-Design haben, insbesondere der endgültige Modifikator, kann verwendet werden, verkürzen die Fähigkeit ist mit der Vererbung verbunden. Früher haben wir erwähnt, dass die Methode als endgültig deklariert werden kann, was bedeutet, dass sie nicht in Klassen außer Kraft gesetzt werden kann, die die, die es ist. Die endgültige Methode wird oft verwendet, um darauf zu bestehen, dass die bestimmte Funktionalität in allen getesteten Klassen verwendet wird. Nun kann der endgültige Modifikator auch auf eine ganze Klasse angewendet werden. letzte Klasse kann überhaupt nicht erweitert werden. So können wir einfach sagen, dass öffentliche Klasse Element. Und jetzt werden wir Adressaten haben, der sagt, dass der Typ Pizza das letzte Klassen-Put-Element
nicht unterklassifizieren kann, da es endlich ist und Sie nicht verlängern können. Diese Deklaration kann daher nicht in der extend-Klausel einer Anlageklasse verwendet werden. Der Compiler generiert in einem solchen Fall eine Fehlermeldung. Die Verwendung des endgültigen Modifikators zur Einschränkung Vererbungsfähigkeit ist eine wichtige Entwurfsentscheidung und
sollte in Situationen erfolgen, in denen eine untergeordnete Klasse möglicherweise verwendet werden könnte, um die Funktionalität zu ändern, die Sie als Designer die bürgerlich wollte in einer bestimmten Weise behandelt werden. Dieses Problem kommt wieder und die Diskussion über Polymorphismus, und wir werden es später diskutieren. So sehen wir uns im nächsten Video.
8. Polymorphismus: Jetzt diskutieren wir Polymorphismus und andere Grundprinzipien objektorientierter Software. Oft stimmt der Typ einer Referenzvariablen mit der Klasse des Objekts überein, dem Exakt bevorzugt. Also, wenn wir sagen, zum Beispiel, eine gleich neue Zeichenfolge. Und sagen Sie, jetzt, was wir hier getan haben ist der Typ der Referenzvariablen ist der gleiche wie das Klassenobjekt, das jetzt der Begriff Polymorphismus dann als viele Formen definiert werden. Eine polymorphe Referenz ist eine Referenzvariable, die zu unterschiedlichen Zeitpunkten auf verschiedene Objekttypen
verweisen kann . Die spezifische Methode, die durch
eine polymorphe Referenz aufgerufen wird, kann von einem Aufruf zum nächsten geändert werden. Nehmen wir also an, wir haben eine Methode namens Duett. Und wenn es ein Referenzobjekt hier polymorph ist, kann
es sich auf verschiedene Arten von Objekten zu verschiedenen Zeiten beziehen. Also, wenn diese Zeile könnte Discord, läuft und dann Schleife, oder es ist eine Methode, die mehr als einmal aufgerufen wird. Diese Codezeile könnte eine andere Version der Duet-Methode aufrufen. Jedes Mal, wenn es aufgerufen wird, können
wir eine polymorphe Referenz in Java auf zwei Arten erstellen, indem wir Vererbung verwenden und Schnittstellen verwenden. Schauen wir uns jeden wiederum an, wird mit Vodafone Polymorphismus über Vererbung beginnen. Also, wenn wir eine Referenzvariable mit
einem bestimmten Klassennamen deklarieren kann verwendet werden, um auf ein beliebiges Objekt dieser Klasse zu verweisen. Darüber hinaus kann auch auf jedes Objekt einer beliebigen Klasse verweisen, die verwandt ist. Und es ist Typ durch Vererbung deklariert. Also zum Beispiel, lassen Sie uns versuchen, dies hier haben wir unsere Hauptmethode ist, einige Klassen hier zu erstellen. Zum Beispiel das Erstellen einer Klasse namens Säugetier, eine andere Klassenkreatur. Und die Hosts der letzten Klasse. Also haben wir drei Klassen. Die übergeordnete Klasse, erraten Sie die Kreatur, und es hat ein untergeordnetes Klassensystem Emile, sollte es erweitern. Und das ist die Hauptpost, es sollte die Kreatur verlängern. Und schließlich haben wir unseren Kurs, eine untergeordnete Klasse der Domäne ist, und er sollte ihn auch erweitern. So haben wir jetzt drei Brillen gelernt. Zusammen mit der Vererbung. Jetzt kann die Hauptreferenz verwendet werden, um auf ein beliebiges Objekt der Klasse zu verweisen. Also zum Beispiel, wenn wir sagen, nennen
wir es H. Also das ist unser Objektpferd. Und zum Beispiel können
wir zum Beispiel sagen, gleich Kante und richtig zu arbeiten. Diese Beziehung funktioniert also in der Klassenhierarchie. Also, wenn die Säugetierklasse von einer Cascode-Kreatur hier abgeleitet wurden, können
wir auch sagen, dass Ranger, Zum Beispiel, lassen Sie uns c gleich nu begrenzen. Und das wird richtig funktionieren. Und Sie können sich auch bei Codes anmelden. Da Horus das Kind von vielleicht ist. Jetzt kann die Referenzvariable SC
polymorph sein , da sie sich zu einem beliebigen Zeitpunkt auf ein Tierobjekt beziehen kann, eine Kreatur, die dem Wirt ermöglicht. Nehmen wir also an, dass alle drei dieser Klassen eine Methode namens move haben , die auf unterschiedliche Weise implementiert wird und wenn diese Zeile ausgeführt wird. Wenn sich also eine Kreatur derzeit auf ein Kreaturenobjekt bezieht und c auf ein Kreaturenobjekt verweist, wird
die Bewegungsmethode der Kreaturenklasse aufgerufen. Ebenso wird, wenn c garantiert auf ein Säugetierobjekt verweist, die Festlandversion von MOOC aufgerufen. Und schließlich, wenn C derzeit Land ist, das auf ein Pferd Objekt bezieht, das Pferd, dass die Methode in der Pferdeklasse aufgerufen wird. Das ist also eine allgemeine Idee über Polymorphismus. Und das nächste Video, wir werden ein Beispiel tun, um es besser zu verstehen.
9. Polymorphismus Beispielteil 1: Werfen wir nun einen Blick auf eine andere Situation. Betrachten Sie also diese Klassenhierarchie. Die Klassen in dieser Hierarchie stellen verschiedene Arten von Mitarbeitern dar, die in einem bestimmten Unternehmen beschäftigt sein könnten. Lassen Sie uns also ein Beispiel untersuchen, das
diese Hierarchie verwendet , um eine Reihe von Mitarbeitern verschiedener Typen zu bezahlen. Also vor allem haben wir die Firm Klasse enthält in Maine, umgeleitet schafft ein Personal von Mitarbeitern und ruft die Zahltag-Methode auf, um sie Anruf zu bezahlen. Das Programm. Die Ausgabe enthält Informationen über jeden Mitarbeiter und wie viel jeder schlecht ist. Wenn irgendetwas. Diese Kanzlei, wir haben die Mitarbeiter. Es unterhält eine Reihe von Objekten, die einzelne Mitarbeiter verschiedener Art repräsentieren. So wird der Bereich erklärt, dass er Mitarbeiter Referenzen halten muss, aber tatsächlich mit Objekten gefüllt ist, die aus
mehreren anderen Klassen wie dem Mitarbeiter Freiwilligen, Führungskraft erstellt wurden . Und diese Klassen sind alle Nachkommen der Mitarbeiterklasse. Und so sind die Zuordnung gültig. Das etablierte Array ist mit polymorphen Referenzen gefüllt. Hier in diesem Mitarbeiter können
wir zweifellos Zugang zu freiwilligen Mitarbeiter-Führungskräften haben. Polymorphe Art und Weise. Jetzt hat jede Klasse ihre spezifischen Eigenschaften. Also müssen alle Arbeiter Name, Adresse und Telefon haben. Aber wenn eine Person Gegner td ist, muss
sie keine Sozialversicherungsnummer oder einen Lohnsatz haben. Und hier ist der Freiwillige anders als Mitarbeiter. Und das Gleiche für Führungskräfte und stündlich. So Executive haben, hat einen Bonus und stündlich hat geklappt. Also lasst uns weitermachen und unsere Klassen erstellen. Um damit zu beginnen. Lassen Sie uns unser Paket erstellen. Lassen Sie uns also mit einem Beispiel beenden, Beispiel Polymorphismus, und wir werden unsere Klasse erstellen. Wir haben hier unsere Hauptmethode. Lass uns gehen und eine andere Klasse erstellen. Erstellen Sie den Mitarbeiter würde es Zeug nennen. Also haben wir unsere zweite Klasse. Dann. Wir haben auch gehen und sehen, was. Wir haben unsere Mitarbeiter, wir haben Mitarbeiter. Mitarbeiterklasse erstellen. Dann haben wir Mitarbeiter Scott freiwillig gemeldet, das ist der Potentate in der Klasse. Und dann haben
wir auch Vollstrecker, und das sind die letzten beiden Klassen, Exekutive. Und schließlich. Nun, da wir alle unsere Klassen erstellt haben,
lassen Sie uns sie zusammen zuweisen. Wir haben also den Mitarbeiter, den Freiwilligen und den Mitarbeiter, die den Mitarbeiter erweitern. So freiwillig hier erweitert Mitarbeiter. Und das gleiche mit dem Mitarbeiter Mitarbeiter. Und wie wir in dieser Klassenhierarchie sehen können, haben
wir Führungskräfte und Kind-Klassen von Mitarbeitern. Es wird hierher gehen und sie ausdehnen. Und das gleiche mit erstreckt sich. Und fangen wir mit dem Mitarbeiter an. Wie wir hier sehen können, haben wir einen Mitarbeiter, drei Variablen, Name, Adresse und Telefon, und die Methode toString. Und lasst uns weitermachen und sie erschaffen. Und uns selbst. Geben Sie ihnen einen geschützten Referenznamen, Adresse. Und wir werden unsere drei Variablen haben. Und jetzt können wir unseren Konstruktor erstellen, um den Mitarbeiter mit der angegebenen Entzündung
einzurichten. Also haben wir diese drei Informationen zu erstellen. Unsere haben diese Informationen wie gewohnt aufgebaut. Und die drei Saiten in der Adressleiste. Und weisen Sie sie einfach zu, um Variablen zu betrachten. Und für n gleich p. Das ist also unser Konstruktor. Lassen Sie uns nun unsere beiden Methoden erstellen. Wir haben toString, toString, und es wird den Namen, Adresse und Telefon drucken. Gehen Sie voran und erstellen Sie dies. Ich habe drei angerufen, die wir Namen plus haben. Lassen Sie uns eine neue Zeile erstellen, indem Sie einfach n eingeben. Das ist
also unser Name. Und in der zweiten Zeile würden wir uns ansprechen. Adresse. Und die Adresse. Die letzte Zeile, Telefonnummer. Das ist also die Telefonnummer. Und jetzt müssen wir eine neue Zeile hinzufügen. Dies ist also unsere ToString-Methode, und schließlich geben wir das Ergebnis zurück. Nun, die letzte Methode, die wir in dieser Klasse haben, sind die Dublin-Bay-Methoden. Methoden haben sich verdoppelt. Jeder Mitarbeiter hat eine andere Zahlungsmethode, lässt die abgeleiteten Klassen eine Methode für jeden Mitarbeitertyp zu definieren. Diese Methode wird also keinen Körper haben. Deshalb wird es abstrakt sein. Und wir sollten die Klasse auch abstrakt zuweisen. Da haben wir eine abstrakte Methode. Das ist also unsere Mitarbeiterklasse, und wir fahren mit den anderen Klassen in den nächsten Purdue fort.
10. Polymorphismus Beispielteil 2: Jetzt, da wir mit unserer Mitarbeiter-Klasse fertig sind, wird zu unserem Freiwilligen zu bewegen. Also haben wir hier einen Adder, der sagt, dass der Freiwillige die abstrakte Methode der geerbten Methode implementieren muss. Mitarbeiter. Jetzt wird geerbt. Aber vorher, lassen Sie uns zu unserer Klassenhierarchie gehen und sehen, dass wir einen Freiwilligen haben, der nicht nur eine doppelte B-Methode hatte. Gehen wir also zurück und erstellen Sie unseren Konstruktor. Wir haben Konstruktor Freiwilligen, Twill wie gewohnt, drei Stärken nehmen. Spank und eine Adresse muss durchgeführt werden. Und unser Super-Konstruktor und geben Sie diese drei Werte. So hat jetzt unseren Konstruktor erstellt. Lassen Sie uns unsere Methode erstellen, die B ist und als Freiwilliger nichts bezahlen wird. Wir haben gerade 0 zurückgegeben. Das ist also unsere Freiwilligenklasse. Nun gehen wir auf unsere Mitarbeiterklasse stellt einen allgemeinen bezahlten Mitarbeiter. In dieser Klasse. Wir haben unseren Konstruktor wie üblich, aber gehen wir zurück zu unserer Klassenhierarchie. Wir können sehen, dass wir zwei neue Variablen haben Sozialversicherungsnummer und Bade Aid. Wir haben zwei Methoden, um zu binden und zu bezahlen. Lassen Sie uns zunächst unsere beiden Variablen erstellen. Geschützte Zeichenfolge. Wir haben die Sozialversicherungsnummer, und eine andere, die mit einem doppelten Typ acht geschützt ist. Jetzt wieder, erstellen Sie unkonstruierte Öffentlichkeit. Und der Parameter jetzt haben wir fünf Variablen statt drei. Wir haben den Namen, die Adresse und das Telefon. Und wir fügen Sozialversicherungsnummer und -zeitraum hinzu. Gehen wir voran und in diese fünf investieren und für Namen,
für die Adresse, das Telefon, und fragen Sie nach der Sozialversicherungsnummer. Und schließlich, ein doppelter Standard gespielt. Und was wir tun werden, ist, die drei Variablen wie üblich dem Super zuzuweisen, indem wir die Superreferenz auf die Konstruktorklasse verwenden. Und jetzt sind wir fertig mit dem Namen, Adresse und dem Telefon. Sie sind automatisch. Sie gingen an den Mitarbeiter und sie werden hier zugewiesen. Und jetzt würde mit unserer Sozialversicherungsnummer arbeiten. Sozialversicherungsnummer, wir geben ihm einen Wert von S. und die Rate, die wir mit einem Wert von Rate belockt haben. Lassen Sie uns jetzt mit unseren Methoden arbeiten. Wir haben zwei Methoden, die ToString, die wir ändern müssen, und die Rate, die Debatte. Zuerst gehen wir und modifizieren die beiden Stränge. Wer ist Tankmethode? Und wenn wir Super D2 Stamm verwenden, wird die ToString-Methode erhalten, was wir es hier speichern. Also bekommen wir Namen, Adresse und Telefonnummer. Gehen wir also voran und verwenden Sie eine gestufte. haben wir. Lassen Sie uns einen Slang namens Ergebnis erstellen und verwenden Sie die Super, um die toString-Methode und das Personal Member Supertype
aufzurufen. Zu. Jetzt haben wir alle Informationen und den Mitarbeiter als nummerierte Adresse und ausländische hier drin. Und wir fügen unsere Sozialversicherungsnummer hinzu, indem wir einfach die
Sozialversicherungsnummer mit dem Wert der Sozialversicherungsnummer angeben. Und dann geben Sie das Ergebnis zurück. Zu. Jetzt sind wir mit dieser Methode fertig. Lassen Sie uns weitermachen und mit unserer Bay Methode arbeiten, die öffentlich ist und einen Wert von Theta zurückgeben würde. Nun, das ist unser Angestellter. Wir gehen und arbeiten mit unserer Führungskraft. Und jetzt gehen wir zurück zu unserer Klassenhierarchie und wir sehen dass Executive Bonus haben, die w Variable, Bonus und zwei Methoden, unser Bonus und sie würden an die Führungskraft
und einen neuen privaten Doppelbonus gehen . Lassen Sie uns unsere konstruierte jetzt öffentliche
Exekutive erstellen und geben Ihnen einige Werte, die wir wie gewohnt haben, der Name und die Adresse wird gefunden, dann die Sozialversicherungsnummer, Namensadresse. Und schließlich sind es acht. Und wie immer nennen wir den Super, geben Sie ihm einen Namen. Adresse PY Telefon als soziale und erhöhen. Der Bonus hier wird gleich 0 sein. Also setzen wir den Bonus gleich 0. Jetzt ist das unser Konstruktor. Lassen Sie uns unsere beiden Methoden erstellen. Wir haben einen ehrlichen Bonus, öffentliche, Dichter Bonus. Wenn Sie einen Parameter einer Tablette nehmen, Lassen Sie uns nennen es Coronas, und wir werden Bonus auf diese Box zuweisen. Und die letzte Methode ist die Bezahlung wird berechnet und für eine Führungskraft zurückgegeben, die die reguläre Mitarbeiterzahlung plus der einmalige Bonus ist. Also bekommen wir unsere Methode. Und diese Methode, lassen Sie uns eine Zahlung erstellen, die super gut ist. So berechnen wir das Zahlungstermin wie gewohnt
vom Mitarbeiter und plus den Bonus und dann zurück. Das ist also unsere Exekutivklasse. Gehen wir jetzt in unsere Klasse. Und unsere Klasse hätten wir eine neue Variable, Arbeitsstunden und drei Methoden bei uns und zu String. Also hier erstellen
wir zunächst unsere private variable Arbeitszeit. Und lassen Sie uns unseren Konstruktor wie gewohnt erstellen. Und wir haben ein, B, Jang. Und schließlich, und wir werden diese vier Variablen
zuweisen, fünf Variablen dem Super UND a, B, S und R und geben den Arbeitsstunden den Wert 0. Hier haben wir keine Methode
namens Add Stunden, um unsere Vermeiden Methode,
öffentliche Stunden und Stunden hinzuzufügen . Und es wird wilde Stunden zuweisen. Also, was auch immer wir haben, Stunden invertieren, wir fügen diese Stunden hinzu. Und eine andere Methode ist die Debatte für diesen Mitarbeiter. Also in dieser Methode würde zurückkehren. Und wir haben eine doppelte Zahlung. Und die Zahlung wird bezahlt. Wir müssen Rate Zeiten zahlen, wie viele Stunden sie einfach arbeiten. Also haben wir unsere Arbeitszeiten. Und danach,
jedes Mal, wenn wir zahlen, wird der
Mitarbeiter automatisch auf 0 zurückgesetzt. Dann kehren wir in die Zahlung zurück. Das ist also unsere Zahlung. Und schließlich haben wir unsere toString-Methode ist öffentliche Zeichenfolge. Und wir können einfach das Ergebnis
aus dem Tank nehmen und es dann ändern, indem wir die aktuellen Stunden hinzufügen. Wie viele Stunden Dämpfer arbeiten derzeit. Also fügen wir eine neue Zeile hinzu. Und dann fügen wir hinzu, sagen
wir aktuelle Stunden und Stunden, Arbeitsstunden. Dann geben Sie die Ergebnisse zurück. Wir beendeten mit unseren Eltern und Kindern Klassen, Mitarbeiter, Freiwilligen, Führungskräfte, und eifrig, das nächste Video werden wir über Mitarbeiter und für Klassen sprechen.
11. Polymorphism Teil 3: Jetzt haben wir noch zwei Klassen, feste Klasse und die Personalklasse. Lassen Sie uns mit der Personalklasse arbeiten. Innerhalb dieser Klasse wird eine Liste einiger Mitarbeiter erstellen. Also privater Mitarbeiter, wie Adam und sein Name ist, Zeug, wird einen Konstruktor erstellen, um ein Teleskop Mitarbeiter durch
einfach ohne Parameter einzurichten und wird diesem Zeug Liste Wert geben. Es ist das neue Zeug. Also haben wir acht Elemente in dieser Liste und und haben einige Elemente. Liste der Sachen, Position 0, Exekutive zum Beispiel. Es, der String-Name. Und die Adresse wird 1-2-3 sein. Mainline Telefonnummer, zum Beispiel, sagen
wir minus 0.51111. Und diese Sozialversicherungsnummer, es ist zum Beispiel die 123456789. Und schließlich ist die Rate, zum Beispiel, sagen wir 2423.07.07. Das Element an Position 1, Mitarbeiter und Mitarbeiter. Und wie üblich, zum Beispiel, wie üblich, sagen wir zum Beispiel, 0,01. Sozialversicherungsnummer 12345451234. Und schließlich, iteriere, sag hundertzweihundertsechsundvierzig. 0,15. Und wir machen dasselbe mit den anderen, nur um sie nicht zu kopieren. Und so ist dies der zweite 17567. Und lasst uns Haiti zum Beispiel ändern. Nehmen wir an, lassen Sie es uns als Angestellter beim zweiten behalten. Und dann wird der, nachdem er als Lehrer kaputt wird. Und der andere
hat genug, so passen Sie die und machen Sie es Größe sechs. Nun, ändern wir diesen Namen, diesen Mitarbeiter. Und von 55 an die Telefonnummer und 99. Und schließlich iterieren Sie zum Beispiel 3.246. Und das Gleiche hier. Und wir haben die 999. Das Gleiche ist beheizt. Lassen Sie uns die Zahlen und die Rate wie gewohnt ändern. Legen Sie es zum Beispiel auf 1010 fest. Und schließlich müssen wir abstimmen, und t ist bekannt. Und es war nur der Name, Adresse und die Telefonnummer ohne diese beiden zusätzlichen. Also lasst uns fortfahren und sie löschen. Und das ist unsere erste, und das sind unsere zweiten Freiwilligen. Wechseln Sie einfach hier. P5. Und ja, diese 123 Hauptleitung. Und er ist es. Das sind also unsere Mitglieder und diese Liste. Jetzt haben wir noch zwei Methoden. Ein und Exekutive, ein Wort giftig und versammelt und unser. Und lasst uns sie benutzen. Und unsere Mitarbeiter, unser Mitarbeiter. Jetzt müssen wir mit der Führungskraft arbeiten. Also schreiben wir einfach Exekutive. Und um dem Programm zu sagen, dass wir einen leitenden Mitarbeiter brauchen. Wir geben an, was das Personal Liste, wenn Sie beginnen, es
in Klammern und Aufwärtsbonus setzen , und das ist 500s zum Beispiel. Und das Gleiche. Und wir werden die Mitarbeiter auf der Liste drei haben. Und jetzt haben wir das Personal, die Zahltag-Methode, um es zu bezahlen oder die Mitglieder. Nach dem Erstellen des Konstruktors wird also ein öffentlicher void Zahltag erstellt. Und wir haben einen Betrag zu zahlen, also sparen wir ihn und es hat den Betrag verdoppelt. Und vor allem, lassen Sie uns jede Liste der Mitarbeiter drucken. Jedes Mitglied in der Liste der Mitarbeiter durch Drucken. Und dann, wenn der Betrag gleich 0 ist, dann ist es sicherlich ein Freiwilliger. Dann drucken wir einfach Panzer aus. Andernfalls würde den Betrag drucken, den wir zahlen werden. Und die Menge ist gleich jedem etablierten. Mit der Methode gibt die Menge gleich 0 ist. Dann danke einfach. Es ist ein Freiwilliger, der ihm nur dankt. Sonst, wenn ich draußen bin. Plus den Betrag. Jetzt haben wir unsere Methode im Personal. Lasst uns weitermachen und es in unserer Firma benutzen. Also erstellte er das Stabsobjekt neu. S ist das neue Zeug und verwenden Sie eine Methode. Und lassen Sie uns den Code ausführen,
sehen, was passieren wird. Also hier haben wir vor allem unsere erste. Gehen wir zurück und drucken Sie die Zeile zwischen F3, weniger jedes Mitglied in der Liste und dieser Liste, nur um, klarer zu sein. Nach dem Drucken jeder, jeder Menge, drucken Sie eine neue Zeile. Und jetzt innerhalb des Fotos und führen Sie den Code noch einmal aus, erhalten
wir die gleiche Ausgabe, aber mit einer Zeile, um jedes Mitglied in dieser Liste zu teilen. Also zuerst, wir haben eine Adresse, Telefonnummer und die Menge, und dann haben wir das Gleiche. Und schließlich müssen wir Freiwillige. Und bekannt und Karla, da sie freiwillig sind, wird den Betrag nicht drucken, weil sie nicht bezahlt werden. Also drucken wir einfach. Danke. Daher denke ich, dass dieses Beispiel den Einsatz von Polymorphismus demonstriert, den wir etabliert haben. Und jedes Mal, wenn Mitarbeiter, jedes Mal wird es verschiedene Dinge drucken, da jedes Mal anders zu arbeiten. Also das ist es für Polymorphismus. Wir sehen uns im nächsten Video.
12. Wiederaufnahme: Wir haben jetzt über Rekursion gesprochen. Rekursion ist eine leistungsstarke Programmiertechnik, die eine elegante Lösung für bestimmte Probleme
bietet. Wir haben viele Male in früheren Beispielen gesehen, dass eine Methode eine andere Methode aufrufen kann, um ein Ziel zu erreichen. Was wir
jedoch noch nicht gesehen haben, ist, dass sich eine Methode selbst aufrufen kann. Rekursion ist eine Programmiertechnik, in der eine Methode sich selbst aufruft, um ihren Zweck zu erfüllen. Aber bevor wir in die Details der Verwendung von Rekursion in einem Programm
eingehen, müssen wir das allgemeine Konzept der Rekursion untersuchen. Die Fähigkeit, rekursiv zu denken,
ist wichtig um Rekursion als Programmiertechnik verwenden zu können. Im Allgemeinen ist Rekursion der Prozess, etwas in Bezug auf sich selbst zu definieren. Nehmen wir an, wir wollten formell eine Liste von einer oder mehreren Zahlen
definieren, die durch Kommas getrennt sind. Eine solche Liste kann rekursiv entweder als Zahl oder als Zahl definiert werden, gefolgt von einem Komma, gefolgt von einer Liste. So können wir sagen, dass wir eine Zahl, gefolgt von einem Komma wollen. Und dann sind dies zwei Beispiele. Wir haben eine Zahl und dann ein Komma und dann eine Liste. Egal wie lang die Liste ist, die rekursive Definition beschreibt sie. Eine Liste eines Elements, wie dieses Beispiel, wird vollständig durch den ersten nicht-rekursiven Teil der Definition für eine Liste definiert ,
die länger als ein Element ist, das es geht ,
wenn ein Teil der Definition so viele Zeiten wie nötig, bis das letzte Element erreicht ist. Was wir hier sagen, ist, dass wir eine Nummer haben, gefolgt von einem Komma, und dann haben wir eine Liste. Und dann gilt das Gleiche für 88 ist eine Zahl, gefolgt von einem Komma, dann von dieser Liste gefolgt. Und 40 ist das Zahlenkomma und dann eine Liste von einem Element. Und schließlich haben wir eine Nummer. Nun enthält die Definition der Liste eine Option, die eine kursive und eine Option, die nicht ist. Der Teil der Definition, der nicht rekursiv ist, wird als Basisfall bezeichnet. Wenn alle Optionen die rekursive Komponente hätten, würde
diese Rekursion niemals enden. Zum Beispiel, wenn die Definition von Listen einfach eine nummerierte gefolgt von einem Komma, gefolgt von einer Liste. Keine Liste könnte jemals enden. Dieses Problem wird als unendliche Rekursion bezeichnet, die der Glenn-Endlosschleife nicht
ähnlich ist, außer dass die Schleife in der Definition selbst auftritt. Also jetzt gehen wir weiter und sprechen über Rekursion in der Mathematik. Nehmen wir zum Beispiel an, die n faktorielle. wir also und faktoriell. Daher wird der Wert, der als n faktorial bezeichnet wird, für jede positive ganze Zahl n als das Produkt aller Ganzzahlen zwischen eins und n einschließlich definiert. Also, wenn wir sagen, n faktorial ist gleich dreimal zweimal. Eins ist sechs. Nun, das Gleiche, wenn wir sagen, fünf faktoriell ist fünfmal viermal dreimal zwei, den
ganzen Weg zu eins. Mathematische Formeln werden oft rekursiv ausgedrückt. Und Definition von N faktorial kann extra ausgedrückt werden als. Und faktorial ist gleich n mal n minus eins. Hier haben wir faktorielle vier und größer. Solange n größer als eins ist, ist
n faktorial gleich n mal n minus einer faktoriellen. Und das Gleiche gilt auch für das. Und so weiter. Nun, der Basisfall dieser Definition ist eine faktorielle. Eine faktorielle ist gleich Eins. Alle anderen Werte von n faktorial definiert rekursiv als N mal der Wert n minus eine faktorielle. Also mit dieser Definition, wenn wir sagen, 50 faktorial, ist
es gleich 50 mal 49 faktorial. Und 49 faktorial ist gleich 49 mal 48 faktoriellen und so weiter. Und dieser Prozess geht weiter, bis wir zum Basisfall von einem kommen. Da n faktorial für die positiven Ganzzahlen definiert ist, ist
diese Definition vollständig und endet immer mit dem Basisfall. Lasst uns jetzt mit Bakterien und Programmierung arbeiten. Zuallererst sollten wir eine Mater-Methode erstellen, um eine Ganzzahl zurückzugeben. Nennen wir es faktoriell und der Köper nimmt eine ganze Zahl als Zahlung an. Und jetzt, wie gesagt, ist
der Basisfall, wenn n gleich eins ist. Also sagen wir, wenn m gleich eins ist, werden
wir nur eins zurückgeben. Andernfalls, wenn n nicht gleich eins ist, sind wir gerade zurückgekehrt und multipliziert mit der Faktorial von n minus eins. Nun, um diese Operation durchzuführen, rufen
wir die Methode nur noch ein Mal mit dem Parameter von n minus1 auf. Jetzt gehen wir weiter und benutzen es. Nehmen wir zum Beispiel an, dass n gleich vier ist. Und diese Methode und, und führen Sie den Code, wir bekommen 24. Was hier passiert ist, ist, wir faktoriell mit einem Parameter von vier durchgeführt haben. So geht es zu dieser Methode. Wir haben dafür ist nicht gleich eins. Also haben wir vier Mal die faktorielle n minus eins, das ist drei. Also viermal faktorial drei. Also haben wir vier. Schlagen Sie hier, viermal etwas. Jetzt faktorial von drei, geht
es noch einmal an die Methode. Wir haben drei Mal Faktorial zwei. Also haben wir dreimal etwas. Und das gleiche, noch einmal, zweimal faktorielle 12 mal faktorielle eins. Also das letzte Mal, wenn wir die Methode eingegeben haben, haben
wir n gleich eins, also geben Sie einfach eins zurück. Und das ist es, es ist viermal dreimal zweimal eins. Also drucken wir das viermal 312 mal 224 aus, und wir bekommen 24. Jetzt könnten wir uns etwas gegenübersehen. Wenn wir beispielsweise einen negativen Wert eingeben, sagen
wir minus sieben, erhalten
wir einen Fehler. Weil wir uns damit nicht befasst haben. Wir haben nur die positive Zahl und multiplizieren sie mit der Zahl darunter. Und wir haben den Basisfall, ist
, wenn n gleich ist man kann es beheben, indem sagt, während n kleiner als oder gleich eins ist, gibt eins zurück, so dass wir eins bekommen. Und wenn wir zum Beispiel keine bekommen wollen, wenn wir minus1 erhalten wollen, können
wir sagen, dass, wenn n kleiner als eins ist, minus1 zurückgeben. Und dann verschieben wir das von hier und führen den Code aus, wir bekommen minus eins. Dies ist also ein kleines Beispiel und Rekursion. Und in den nächsten Videos werden
wir es mehr erkunden.
13. Beispiel: Sammeln mit Rekursion: Lassen Sie uns nun eine andere einfache mathematische Operation verwenden um das Konzept der rekursiven Programmierung zu demonstrieren. Betrachten Sie den Prozess der Summierung der Werte zwischen eins und n einschließlich, wobei n eine beliebige positive Ganzzahl ist. Die Summe der Werte von eins bis n kann als
und plus die Summe der Werte von eins bis n minus eins ausgedrückt werden . So können wir sagen, dass die Summe von n gleich n plus und minus eins ist. Also lassen Sie uns dies hier als Kommentar behalten. Und fangen wir mit unserer Methode an. Lassen Sie es uns nennen. Einige öffentliche statische gibt eine ganze Zahl mit dem Wert und zurück, und unser Basisfall ist taub und ist gleich eins. Rückgabe eins sonst würde die Zahl
und plus Summe von n minus1 gedreht werden. Also, wie wir hier gesagt
haben, sollten wir einige von n zurückgeben ist gleich n. Dies ist n plus die Summe von n minus eins. Und das ist unsere Methode und lassen Sie es uns hier verwenden. Drucken Sie einige der Durchschnittswerte aus. In diesem Fall vier. Wir bekommen vier plus drei plus zwei plus eins gleich zehn. Nun ist der Basisfall im Summationsbeispiel, wenn n gleich eins ist, an welchem Punkt keine weiteren rekursiven Aufrufe ausgeführt werden. Die Rekursion beginnt, auf die früheren Versionen der Summenmethode zurückzugreifen und jedes Mal den entsprechenden Wert zurückgeben. Jeder Rückgabewert trägt zur Berechnung der Sonne auf der höheren Ebene bei. Ohne einen Basisfall würde eine
unendliche Rekursion resultieren. Die Summe Funktion unterschiedliche Anfangswerte von non end und bis die Verarbeitung vertraut wird. Also in dieser Abbildung zeigt die rekursiven Aufrufe, wenn die Hauptmethode einige aufruft, um die Summe der ganzen Zahlen von eins bis vier zu bestimmen. Jedes Feld stellt eine Kopie der Methode dar, wie sie sich in befindet. Aufrufe werden hier als durchgezogene Linien angezeigt und werden als gepunktete Linien zurückgegeben. Das Ergebnis des Rückgabewerts in wird bei jedem Schritt angezeigt. Der rekursive Pfad wird vollständig verfolgt, bis der Basisfall ist, wenn die Summe gleich Zahl hier ist, Werte gleich eins. Und danach ist die Basis jetzt erreicht. So begann die Ursache dann, das Ergebnis durch die Kette zurückzugeben. Also, wenn n gleich eins ist, beginnen
wir, ihre Ergebnisse zurückzugeben. Zuallererst geben wir eins zurück. Dann haben wir zwei plus 133 plus drei ist gleich sechs, wird 66 plus 410 zurückgeben würde zehn. Nun, natürlich, gibt es eine nicht-rekursive Lösung für das Summierungsproblem würde gerade untersucht. Eine Möglichkeit, die Summe der Zahlen zwischen eins und
einer Zahl und inklusive in iterativer Weise zu berechnen , ist zum Beispiel, wir verwenden die
for-Schleife für eins bis n einschließlich, also gleich n und Summe plus gleich. Und vor allem haben
wir eine ganze Zahl, Summe gleich 0. Und dann drucken wir einige Plussumme aus, und hier müssen wir hinzufügen. Die Summe ist also gleich 0 plus eins plus zwei plus drei plus fünf plus vier. Und wenn ich gleich vier ist,
der Ausgang, die for-Schleife und die Summe drucken. Und hier habe ich eine Drucklinie hier hinzugefügt. Nun, wenn wir den Code ausführen, bekommen
wir einige ist zehn. Nun, hier können wir natürlich sagen, dass ich gleich eins ist. Und wir bekommen das Gleiche. Oder kann r gleich eins gesetzt werden und mit i gleich zwei beginnen. Und natürlich bekommen wir das gleiche Ergebnis. Natürlich ist die Lösung sicherlich einfacher als die rekursive Version. Wir verwenden das Summierungsproblem, um Rekursion zu demonstrieren, da es einfach ist, nicht weil Sie Rekursion verwenden würden, um es unter normalen Bedingungen zu lösen. Rekursion hat den Overhead
mehrerer Methodenaufrufe und stellt in diesem Fall eine kompliziertere Lösung dar. Dann ist es ein iteratives Gegenstück. Der Programmierer muss lernen, wann die Rekursion verwendet werden soll und wann sie nicht verwendet werden soll. Bestimmung, welcher Ansatz am besten ist, hängt von dem zu lösenden Problem ab. Alle Probleme können iterativ gelöst werden. Aber in einigen Fällen ist
die iterative Version für
einige Probleme viel komplizierter und ermöglicht es uns, relativ kurze, elegante Programme zu erstellen. Schließlich werden wir über direkte und indirekte Rekursion sprechen. Dialektische Korrosion tritt auf, wenn eine Methode sich selbst aufruft, z. B. wenn einige Ziele, indirekte Rekursion auftritt, wenn eine Methode eine andere Methode aufruft, was
schließlich dazu führt, dass die ursprüngliche Methode erneut aufgerufen wird. Zum Beispiel ruft die Methode m1 eine Methode M2 auf und M2 ruft die Methode m1 auf. Wir können sagen, dass m1 indirekt rekursiv ist. Die Menge der Umleitung könnte mehrere Ebenen tief sein. Wie wenn m1 in Büchern, m2, die M3 aufruft, die M4 aufruft. Und schließlich ruft diese Methode und für m1 auf. Und direkte Rekursion erfordert
die gleiche Aufmerksamkeit, um Fälle zu haben, die direkte Rekursion erfordert. Darüber hinaus kann in der direkten Rekursion schwieriger
zu schmecken sein , da wie die dazugehörige Methode aufruft, daher Extrakt beim
Entwerfen oder Auswerten in direkt rekursiven Methoden ein Ende ist . Und zeigte, dass die Umleitung wirklich notwendig ist und klar erklärt, wie Sie wollen.
14. Recursion: Maze Teil 1: Nachdem Sie Rekursion für einige einfache Programme verwendet haben, verwenden Sie es
jetzt mit komplexeren Programmen. Lassen Sie uns voran und erstellen Sie ein neues Paket. Nennen Sie es Programme. Und wir erstellen zwei Klassen. Zwei fabelhafte. Das bedeutet, wir haben die erste ist Labyrinth Suche genannt. Hier haben wir unsere Hauptmethode. Und die zweite nennen
wir es Labyrinth. Jetzt ist es umschalten erstaunt beinhaltet eine große Menge von Versuch und Fehler, einem Pfad
folgen, Backtracking, wenn Sie nicht weiter
gehen können und andere nicht versuchte Optionen ausprobieren. Solche Aktivitäten werden oft mit Rekursion gut gehandhabt. Wir haben unsere beiden Klassen. Dies ist unsere Fahrerklasse, kann suchen. Wir haben eine Hauptmethode hier und unser Labyrinth, wo wir unsere rekursive Methode erstellen werden. Also hier, vor allem, lasst uns MAs schreiben und wir werden die zweidimensionalen hinzugefügt verwenden. Wird es nie zuvor verwendet, wie ein Array, sondern ein zweidimensionales. Wir verwenden also ein zweidimensionales Array von ganzen Zahlen, um dieses Labyrinth darzustellen. Und das Ziel ist es, von der oberen linken Ecke in
die untere rechte Ecke zu gehen und es aufzuschreiben und dann werden wir uns bei Ihnen melden. Das ist also unser Labyrinth. Anfangs weist eine Eins auf einen klaren Pfad und eine 0 auf einen schwarzen Pfad hin. Wenn das Labyrinth gelöst ist, werden
diese Array-Elemente in andere Werte geändert, um
versuchte Pfade und letztlich erfolgreiche Pfad im gesamten Labyrinth anzuzeigen . Also hätten wir zwei Werte. Man wird ihnen eine Referenz endgültig geben, und eine ist, lassen Sie uns begrenzen. Wenn wir also einen Pfad versuchen, dann wird der Wert 31 über dem letzten Weniger Namenspfad sein. Und wir geben ihm einen Wert von sieben. Nun, die erste Methode, die wir erstellen werden, ist die toString-Methode, um dieses Gitter, dieses Labyrinth, zu drucken. Und um weiterzumachen, benutzen wir die Öffentlichkeit. Hier haben wir Belastung. Strain und er würde zurückkehren. Ein Labyrinth Domains wird als String erstellen. Zunächst einmal haben wir unsere Stärke und Ausdauer. Und dieses Ergebnis. Lassen Sie uns zunächst eine Zeile drucken und hier eine Zeile drucken. Und wir drucken das einfach aus. Also erstellen wir zwei for-Schleifen, die für Schleifen verschachtelt sind. Eine für die Zeilen und die zweite für die Spalten. Also hier haben wir die große Punktlänge. Und die andere Einsicht ist diese Länge. Also, wenn wir sagen, groß ich diese Länge. Also werden wir jede Reihe nehmen und, und wir werden die Länge des Schlaganfalls sehen. Also wird er 131313 haben. So ist die Länge der äußeren for-Schleife als acht und die innere for-Schleife 13. Und jetzt werden wir voran gehen und sie im Ergebnis speichern. Wir speichern das Gitter bei i und j und fügen hier doppelte Anführungszeichen hinzu. Und wir haben getan, danach werden
wir nur ausrichten drucken. Also mit dem hier und Sie Linie. Und es wird diese zusammenfassen. Und dann sollten wir so tun, als ob die Ergebnisse. Also lasst uns gehen und es ausprobieren. Ein Objekt bedeutet, lassen Sie uns die toString-Methode verwenden und den Code
ausdrucken. Sieh dir unser Labyrinth an. Das ist also unser Stromnetz. Nun, wie gesagt, zeigt
man einen Pfad und 0 einen Block an. Aber jetzt, um zu wissen, ob diese Position gültig ist oder nicht, werde
ich eine Methode erstellen, nennen
wir es Pilot. Vor der Erstellung unserer, weil wenn Methode. Also werden wir voran gehen und eine neue Methode erstellen. Nennen wir es. Und es wird true zurückgeben, wenn diese Position gültig und falsch ist. Wenn nicht. Also, nehmen Sie zwei Elemente. Und schließlich haben wir boolesches Ergebnis. Zuallererst ist es falsch. Und jetzt überprüfen wir, ob sich die Zelle in den Grenzen der Matrix befindet. Überprüfen Sie also, ob rho größer oder gleich 0 ist. Und wenn Rho kleiner oder gleich dieser Länge ist. Und natürlich, das Gleiche für die Spalte. Wenn Strom größer oder gleich 0
ist und Spalte kleiner oder gleich Rho Punktlänge ist. Das ist also der Fall. Dann überprüfen wir jetzt, ob die Zelle nicht blockiert und nicht zuvor gebunden ist. Also, wenn diese Rasterzeile gleich Gitterzeile und -spalte gleich eins ist, dann ist dies eine Pilotbewegung, würde es nie zuvor versucht und es ist nicht blockiert. Also, wenn es nicht gleich 0 ist oder es nicht gleich drei ist, dann gehen wir voran und wir werden das Ergebnis erhalten. Wir ändern die Ergebnisse von false zu true. Und danach gaben
wir das Ergebnis zurück, was auch immer dieses Ergebnis ist, wahr oder falsch, würde es zurückgeben. Jetzt. Dies ist jetzt eine Methode, um zu überprüfen, ob dies eine gültige Bewegung ist. Also, was wir hier sagen, ist zum Beispiel, lasst uns diese Position überprüfen. Das ist also an Position 012 und Ansatz 0. Also zuerst, dies, wenn Sie auf diese Position zugreifen möchten, können
wir cred, Zeile und Spalte schreiben. Sie befindet sich in Spalte 3012. Tut mir Leid, das zu hören. Also an Position 02, wir haben diese 012, wir haben diese Position, dass 22 hier, 03, 0s und so weiter. Also diese Methode gültig, vor allem, werden
wir die beiden Parameter, Zeile und Spalte nehmen. Und vor allem wird
es überprüfen, dass die Zelle, es ist die Grenzen der Matrix. Wenn also rho größer als 0 und niedriger als die Länge ist, also wenn es zwischen 08 und gleich hier ist, wird überprüft, ob der Strom zwischen 0 und der Länge 13 liegt. Danach, wenn dies der Fall ist, dann gehen wir voran und überprüfen die Nummer und diskret. Also werden wir zugreifen, lesen Joe Cannon in diesem Fall 12. Und wir werden hier sehen, wir haben 12012012 hier. Das ist also 12. Wenn es gleich eins ist
, ändern wir das Ergebnis in true. In diesem Fall haben wir eine, also ändern wir es in true und es wird Ergebnis als wahr zurückgeben. Jetzt haben wir alle Werkzeuge und wir neigen dazu, mit unserer rekursiven Methode zu beginnen. Also fangen wir damit im nächsten Video an.
15. Recursion: Maze Teil 2: Wir haben immer noch unsere letzte Methode, die unsere rekursive Methode ist. Und die einzigen gültigen Bewegungen durch das Labyrinth sind in der vollen Priorität direkte Richtungen nach unten, ausgetrocknet und links. sind keine diagonalen Bewegungen zulässig. In diesem Beispiel ist
das Labyrinth acht Zeilen mit drei Spalten. Obwohl der Code entworfen wurde, um erstaunt von betonen zu handhaben. Aber jetzt, lasst uns mit 813 arbeiten. Also lasst uns das rekursiv durchdenken. Die ms kann erfolgreich durchlaufen werden, wenn wir
es Position 00 bis Position 712 durchqueren können . In diesem Fall an Position 00 müssen
wir damit arbeiten,
also prüfen wir, ob es sich um eine gültige Position handelt. Wenn es gültig ist, ist
es gleich eins. Dann haben wir vier Richtungen. Wir haben 01100 minus eins und minus 10, minus 10100 minus eins und nicht gültig. Also haben wir noch zwei gültige Züge, das ist 0110. Und wir gehen zum Beispiel mit 01. Und wir werden prüfen, ob es gültig ist. Es ist gültig. Und jetzt werden wir uns in der gleichen Position befinden wie in der ersten. Also haben wir auch vier Richtungen, oben, unten, rechts und links. Und wir müssen zwischen ihnen nachsehen. Das Gleiche geschieht jedes Mal, wenn wir uns in diesem Labyrinth bewegen. Lassen Sie uns jetzt unsere Methode erstellen. Nennen wir es Avars. Und diese Methode ist boolesch. Zurück wahr, so tun, reist das Labyrinth und falsch sonst. Öffentlicher boolescher Wert. Und mit 0-0 Gelehrten 22 Parameter beginnen, Intro und inkarnieren und würde mit dem Körper hier arbeiten. Zuallererst brauchen wir unseren Booleschen Wert. Nennen wir es erledigt. Zuallererst wird es gleich falsch sein. Und am Ende der Methode sollten
wir einen Booleschen Wert zurückgeben. Also werden wir fertig zurückkehren. Jetzt. Wir müssen überprüfen, dass die Position, in der wir sind, gültig ist. Also werden wir die gültige Methode verwenden. Wir haben ein Druckmittel geschaffen. Wenn also gültig, geben wir ihm zwei Parameter, Zeile und Spalte. Und wenn das der Fall ist, arbeiten wir hier. Nach der Überprüfung, ob es sich um eine gültige Position handelt. Jetzt wird es von eins zu drei ändern, da wir es versucht haben. Also ändern wir die Rasterzeile und -spalte von eins zu drei, da wir sie hier finden. So können wir sagen, dass dies versucht wurde. Es gibt nur einen Fall, in dem das Netz gelöst wird und wir wahr zurückkehren. So ist es, wenn rho gleich der Länge des Rasters minus1 ist. Also rho gleich dieser Länge minus eins, und m ist gleich roter Reihe minus eins. Und dann ändern wir uns von falsch zu wahr. Sonst müssen wir es überprüfen. Also hier sagen wir, dass, wenn wir in der Position 712 in diesem Fall sind, da Punktlänge minus eins acht minus 17. Und quid pro Punktlänge, wenn S1 13 minus 1 12. ist. Wenn wir also an Position 712 sind, dann sind die Mittel gelöst. W1 gleich, und dann werden wir zurückkehren fertig und wir sind fertig. Sonst müssen wir mit nicht in dieser Position noch überprüfen. Wir müssen das nach unten überprüfen,
indem wir w1 gleich nach unten durchqueren. Wir fügen Zeile eins hinzu. Wenn wir also bei Pro 66 plus eins sind, wissen
wir über sieben Reihe eins mit der gleichen Spalte. Und das Gleiche ist nicht getan. Oder wir können sagen, wenn w1 nicht gleich ist, ist gleich falsch. Wenn wir noch nicht fertig sind. Das Gleiche. Wir versuchen, Zeile,
Spalte plus eins gleichrho minus eins
zu schreiben Spalte plus eins gleich . Das Gleiche. Versuchen Sie ro minus1, Zeile und Spalte minus eins. Das ist es also. Und jetzt erklären wir es. Aber bevor dun, dun und Dislokation ist Teil des Endlichen, aber dann müssen wir es von drei oder eins oder was auch immer zu sieben ändern, was gleich ist. Das ist, was wir hier getan haben, ist, dass wir eine Methode namens Traverse erstellt haben, die eine boolesche Methode ist. Es gibt einen booleschen Wert, der angibt, ob eine Lösung gefunden wurde. Zunächst bestimmt die Methode, ob eine Verschiebung in die angegebene Zeile und Spalte gültig ist. Ein Umzug gilt also als gültig, wie wir bereits gesagt haben, wenn er innerhalb der Grenzen bleibt und wenn ein Jahrzehnt
einen an diesem Ort enthält , der anzeigt, dass eine Bewegung in diese Richtung nicht blockiert wird. Der anfängliche Aufruf zum Durchlaufen von Durchläufen in der oberen linken Position, 0-0 wird mit 00 beginnen. Und wenn der Umzug gültig ist, dieser Vint-Eintrag von eins auf drei geändert. Wenn es gültig ist, wird der Rastereintrag von eins auf drei geändert. Und dann so markieren
diese Delegation als besucht, damit später wir unsere Schritte nicht zurückverfolgen. Und diese Methode bestimmt dann, ob das Labyrinth abgeschlossen
wurde, indem er die untere rechte Position erreicht hat. Also, wenn wir die untere rechte Gelegenheit erreicht haben, dann würde getan von falsch zu wahr. Und unser Labyrinth ist dann zu Ende. Und ansonsten müssen wir noch ein paar Schritte folgen. Bei dieser Methode versuchen
wir verschiedene Pfade aus. So können wir zum Beispiel mit U1 beginnen und dann eins nach unten gehen. Und er wurde durch drei Nullen blockiert. Und eigentlich gibt es drei, es gibt drei Möglichkeiten des Basisfalles für dieses Problem, das jedes
bestimmte wegen der ersten beendet , wenn ein ungültiger Zug, weil der Film außerhalb der Grenzen ist. Zum Beispiel, hier, wenn wir hier sind, haben
wir eine und die linke Position ist nicht gebunden. So wird es das Programm beenden. Und der andere ist eine ungültige Bewegung, weil der Mond schon einmal versucht wurde. Also zum Beispiel, wenn wir hier 21 gehen und dann zurück gehen, dann weiß ich es nicht, vielleicht versuchen Sie es nach links und gehen dann zurück zu den beiden unten. Wir haben es vorher versucht, so dass es nicht gültig ist. Schließlich ein Umzug, der am endgültigen Ort ankommt. Nachdem wir also durch das Labyrinth gegangen sind und hier den Boden erreicht , haben wir das Labyrinth gesucht und es wird unseren Weg beenden. Nun befindet sich CurrentLocation in der unteren rechten Ecke. Wir haben bei Bedarf nach einer Lösung in jeder der primären Richtungen gesucht. Zuerst schauten wir mich an, schauten nach unten, indem wir rekursiv die Traverse-Methode aufrufen und übergeben und den neuen Ort übergeben. Die Logik der terroristischen Methode beginnt also von vorne. Verwenden der neuen Position. Eine Lösung wird entweder letztendlich gefunden, indem man zuerst versucht, vom aktuellen Standort nach unten zu wechseln, oder sie wird nicht gefunden. Also zum Beispiel, wenn wir mit 00 beginnen und wir hier 01 haben, recherchieren zuerst, wir haben 010, entschuldigen Sie mich. Also hier sind wir an Position 1-0 würde die ganze Logik erneut versuchen. Und wir überprüfen zuerst nach unten, wir haben nichts, wir haben 0. Dann ist es nicht gültig. Dann versuchen wir es, richtig? 0, wir können es nicht richtig versuchen? Da es nicht gültig ist, versuchen wir es. Jetzt ist gleich drei, dann ist es auch nicht gültig. Dann würde schließlich versuchen, links, die gleich ist, die aus gebunden ist. Das ist also nicht gültig. Dann kehren wir falsch zurück und gehen zurück zu hier. Danach, was wir tun werden, ist, abgeleitet zu versuchen. Wir haben hier in der richtigen Position. Es ist 01. Also hier sind wir am Standort 01. Zunächst einmal werden wir mit dem Blick nach unten beginnen. Es ist 0 eingeladen. Also gehen wir zurück und schauen, richtig, wir haben eins, es ist gültig. Also gehen wir zu dieser Position x. Also jetzt sind wir an dieser Position, werden die gleiche Logik immer wieder tun. Wir beginnen von unten, wir haben einen, wir finden den Weg. Dasselbe mit einem. Wir gehen und suchen nach unten. Wir haben 0 ungültig, gehen Sie mit rechts. Das Gleiche hier. Bis wir entweder einen blockierten Zug erreichen. Wenn ich einen hinzugefügt und weiter, bis wir die untere rechte Ecke erreichen, Schritt für Schritt bis zum Erreichen der unteren rechten Ecke. Aber für jetzt werden wir auf die Suche gehen und wir haben, diese Methode ist booleans. So erstellen wir eine boolesche Variable, Name und Mais. Zwei gleich M. Traverse würde mit 00 beginnen. Also, wenn dies gleich wahr ist, wenn Labyrinth, können wir gleich gut sagen, lassen Sie es leer. Daten zur gleichen Zeit. Und wenn dies ein Fall ist, nur drucken war erfolgreich. Andernfalls werden wir drucken, dass es keinen möglichen Pfad gibt. Und schließlich drucken wir das Labyrinth aus. Läuft mehr Zeit. Gehen Sie voran und führen Sie diesen Code, wird das Labyrinth erfolgreich durchlaufen. Und hier haben wir unseren Weg 777 runter Seventh,
runter, bis wir hier erreichen als sieben, den
ganzen Weg runter, und dann hoch, bis wir den letzten Center und die untere rechte Ecke erreichen. Also das ist es für das Labyrinth-Problem, Problem. Und im nächsten Video werden wir über Tower of Hanoi sprechen.
16. Recursion: Türmen von Hanoi: Und dieses Beispiel wird die Türme von Hanoi Puzzle dienen. Die Türme von Hanoi Puzzle wurde in den 18 achtziger Jahren von Französisch Mathematiker erfunden, hat sich zu einem Favoriten unter Informatikern, weil es eine Illusion ist eine ausgezeichnete Demonstration der rekursiven Eleganz. Der Bauer besteht aus drei aufrechten Säcken und einer Reihe von Scheiben mit Löchern in der Mitte, so dass die Gleiten auf den Rücken. Jede Scheibe hat einen anderen Durchmesser. Zunächst werden alle Platten auf einem Stift in der Reihenfolge der Größe gestapelt, so dass die große, die größte Scheibe auf der Unterseite ist, wie in dieser Abbildung gezeigt. Und das Ziel dieses Puzzles ist es,
alle Festplatten vom ursprünglichen Stift zum Ziel PEC zu bewegen . Aber das ist die ursprüngliche Bank. Das Zielpaket ist dieses. So können wir den zusätzlichen Peg als temporären Ort verwenden, um Festplatten zu platzieren. Aber Sie müssen die folgenden drei Regeln befolgen. Erstens können wir keinen größeren Datenträger auf einem kleineren Datenträger platzieren. Zum Beispiel können wir diesen Schreibtisch nicht nehmen, ihn hier
platzieren, und dann den anderen nehmen und ihn oben platzieren. Zweitens, Wir können nur eine Festplatte auf einmal verschieben. Und schließlich muss der alte Schreibtisch auf einem Stift sein, außer für den Schreibtisch, der zwischen den Packungen unterwegs ist. Also können wir heute nicht von den Türmen nehmen. Diese Regeln implizieren, dass Sie kleinere Datenträger aus
dem Weg verschieben müssen , um den größten Datenträger von 1 auf einen anderen zu verschieben. Also hier haben wir ein Beispiel Schritt-für-Schritt-Lösung für die Türme von Hanoi Puzzle mit drei Schreibtisch. Um also letztendlich alle drei Scheiben vom ersten Stift zum dritten Stift zu bewegen, müssen
Sie zuerst zu dem Punkt kommen, wo die kleinere zu diesem aus dem Weg und die zweite Bank, so dass die größte Scheibe vom ersten Stift zum dritten Stift bewegen kann. Hier haben wir die ursprüngliche Konfiguration. Also zuerst verschieben wir die erste,
diese die kleinste Scheibe auf den letzten Peck. Und danach bewegen wir den zweiten zum, nach hier, zum zweiten Pflock. Und dann nehmen wir wieder diesen Rauch, dass die kleinste Scheibe und legen Sie es auf die zweite Disc. Und jetzt können wir die letzte Festplatte von hier zum Ziel verschieben. Und dann verschieben wir die erste Diskette in die erste Tasche. Verschieben Sie die zweite Festplatte, tat die letzte Tasche, und verschieben Sie dann die erste Festplatte auf die letzte Seite. Also haben wir sieben Züge. Und dieses Beispiel, während Sie drei verwenden. Lassen Sie uns diese Idee verwenden, um eine allgemeine Strategie zu bilden. Also, um einen Stapel von n Festplatten von der ursprünglichen Pegs zum Ziel-Peg zu verschieben. Zuallererst haben wir hier n Scheiben. Was wir getan haben, ist, dass wir uns bewegt und minus1 auf die Festplatte von diesem Stift auf den zweiten Stift. Also, was Sie tun sollten, ist, die oberste n minus eine Diskette von
der ursprünglichen Stift auf den zusätzlichen Stift hier zu bewegen . Dann verschieben Sie die größte Festplatte von der ursprünglichen Pflog zum Ziel Peg, wie wir es hier getan haben. Und schließlich verschieben Sie die n minus eine Diskette von der zusätzlichen Pegs
zum Zielpaket und verwenden Sie die Rekursion früh. So ist der Schritt, n minus eine Diskette nach dem Weg zu bewegen, immer wieder das gleiche Problem. Also, wenn wir hier und minus1 Schreibtische hier haben, also müssen wir sie zurück hierher bringen. Wir können die gleichen Schritte wie gewohnt durchführen. Und nachdem wir zu diesem Punkt gekommen
sind, können wir dann den gleichen Schritt ausführen. Alle anderen Konten. Gehen wir nun zu diesem Programm und erstellen Sie ein neues Paket. Unsere Versammlung. Hier haben wir unsere Hauptmethode. Und die zweite Klasse, wir nennen es Tower of verärgert. Und jetzt richten
wir zuerst das Puzzle mit einer bestimmten Anzahl von Discs ein. So schaffen wir unsere Konstruktortürme. Und dann wird es eine ganze Zahl nehmen, wie viele Festplatten? Also benennen Sie es. Und wir haben, natürlich, würde
ich lokale variable Gesamt-Schreibtische. Und was wir tun werden
, ist n. und jetzt müssen wir dieses Programm lösen, diesen Knopf. Also werden wir hier zwei Methoden verwenden. Die erste Methode besteht darin, die angegebene Anzahl von Festplatten von einem Tower in einen anderen
zu verschieben, indem eine Subkultur von n minus einer Festplatte auf den Weg verschoben wird. Wie gesagt,
was Sie tun, ist es privat zu machen. Wir nennen ihn „Move Tower“. Und jetzt heute die Anzahl der Festplatte als Parameter und der Start und das Ende und die zusätzliche. Nun, wie gesagt, wenn wir nur noch einen Schreibtisch haben, bewegen
wir ihn einfach von hier auf den letzten Peck. Und so ist das unser Basisfall. Wenn die Anzahl davon gleich eins ist, dann bewegen wir es einfach. Lassen Sie uns also die Methode erstellen,
die die Festplatten verschieben wird , anstatt sie jedes Mal hier zu schreiben. Also haben wir private Leere. Lassen Sie es uns benennen, verschieben Sie eine Festplatte. Heute beginnen zwei ganze Zahlen von dort, wo wir es auf zwei verschieben werden. Und bis es einfach drucken wird, dass
eine Festplatte vom
Anfang bis zum Ende bewegen eine Festplatte vom . Nun, wenn die Anzahl der Festplatte gleich eins ist, dann verschieben Sie eine Festplatte von Anfang an, um zu handeln. Sonst. Was tun wird, ist das, was wir hier gesagt haben. Also müssen wir n minus eine Scheibe vom ersten Stift
zum zusätzlichen Stift bewegen und dann n minus eins bewegen. Verschieben Sie das letzte vom ersten Tag beginnend Peg zum Ende hier, wie wir hier sehen können. Und dann schieben Sie diese zurück zum ersten Pflock. Wie gesagt, wir müssen uns bewegen. Der erste Schritt besteht darin, n minus1 von Anfang zu extra zu bewegen. Also führen wir diesen Umzugsturm durch. Wir haben n minus eins hier, also eine Reihe von minus eins. Und wir beginnen mit dem Start. Und wir haben sie zu extra gebracht. Und die Auszugstasche wäre der endgültige Peck. Danach müssen wir eine Festplatte verschieben. Jetzt sind wir hier. Also, was wir tun sollten, ist, diese Scheibe von der ersten Tasche zum letzten Peck zu bewegen. Daher führen wir diesen Vorgang durch, indem wir einfach die Methode aufrufen, die Sie hier erstellt haben. Verschieben Sie einen Tod von Anfang bis Ende. Und schließlich sollten wir diese Scheiben auf das letzte Haustier verschieben. Also werden wir erschaffen, unsere Zahl des Todes vom Extra,
dem Extra hier bis zum Ende verschoben . Also hier haben wir und, und starten. Und jetzt wird diese Methode gesagt. Jetzt können wir eine öffentliche Methode erstellen, nur um
diese Methode einfach zu verwenden , ohne den Anfang und das Ende extra einzugeben, benennen Sie es in verkauft um. Und es wird insgesamt Festplatten
als Parameter, eine ganze Zahl nehmen . Und zwei einfach aufgerufene bewegten unsere Methode mit einer Reihe davon, was die Summe ist. Diese Tasche ist die Peg-Nummer eins, das Ende ist drei, und die zusätzliche ist zwei. Und jetzt gehen wir weiter und führen Sie diesen Code und unsere Hauptmethode aus. So erstellen wir ein Objekt Turm von Hanoi und T, die neuen Türme von Hanoi. Und lassen Sie uns es mit 34 Schreibtisch verwenden. Und hier haben wir Erde. Und dieser Code wird folgende Zeilen erhalten. Und das Gleiche. Zum Beispiel, sagen wir zehn. Dies wird so viele Zeilen bekommen , um alle Festplatten vom ersten bis zum letzten zu verschieben. Denken Sie nun an die iterative Version. Wie würde aussehen? Und wenn es so einfach ist wie diese rekursive Version. Also das ist es für den Turm von Hanoi Problem. Und wir sehen uns im nächsten Video.
17. Einfügung: Betrachten Sie, dass Sie eine Liste von Ganzzahlen wie diese Liste haben. Und Sie möchten, dass sie vom niedrigsten zum höchsten sortiert werden. Hey, du kannst Salzen benutzen. Und es gibt tatsächlich mehrere Sortieralgorithmen und wir werden über einige von ihnen sprechen. Also innen durch Einfügen Sortierung. Einfüge-Sortierung ist ein einfacher Sortieralgorithmus, der
ähnlich der Art arbeitet , wie Sie Spielkarten in Ihren Händen gesehen haben. Das Array ist praktisch in einen sortierten und unsortierten Teil aufgeteilt. Werte aus dem unsortierten Teil werden ausgewählt und an der aktuellen Position im sortierten Teil
platziert. Zwei hier können wir mit diesem Beispiel beginnen. Nehmen wir an, wir haben diese Liste, und diese Liste wird in zwei Teile unterteilt, einen sortierten und unsortierten Teil. Also zuerst werde ich es um zwei lösen, wird nur das erste Element sein. Das ist also unsere erste Liste und das ist der zweite Teil. Jetzt ist vier bereits sortiert, da es nur ein Element ist, es gibt nur ein Element in dieser Liste. Und du musst gar nichts tun. Es gibt kein Element auf der linken Seite, das größer als vier ist, dann müssen wir drei hinzufügen. Also haben wir 43. Wir vergleichen drei mit vier. Also vier ist größer als drei. Also sollten wir sie tauschen und wir kriegen 34. Nun, der sortierte Teil der Liste ist 34 und der unsortierte Teil ist, was es hier gibt. Und wir gehen zum nächsten Element über. Wir müssen zwei zu vergleichen 44 ist größer als zwei, dann tauschen wir sie aus. Und das gleiche, was wir vergleichen zwei mit 33 ist größer als zwei auch. Also tauschen Sie sie noch einmal aus, wir bekommen 234. Und jetzt ist dies der sortierte Teil, und das ist der unsortierte Teil, und so weiter, bis das letzte Element der Liste erreicht wird. Und dann sind wir fertig. Die allgemeine Idee besteht also darin, jedes Element mit allen Elementen auf der linken Seite zu vergleichen. Tauschen. Jedes Mal, wenn wir ein Element auf der linken Seite finden, das größer ist als das Element, das wir verwenden. Also lasst uns voran gehen und den Code schreiben. Du gehst und erstellst eine Klasse. Und zuerst erstellen
wir unser ganzzahliges Array, unsere Liste der ganzen Zahlen. Und zum Beispiel haben wir fünf Elemente in diesem Array. Lassen Sie mich sie direkt bei 5110 speichern. Also das ist unser Array und lassen Sie uns unsere
Methode erstellen . Aber nennen wir es Einfügung. Und um Parameter ein Array zu nehmen, lassen Sie uns es bei der Arbeit hier nennen. Also zuerst haben wir die for-Schleife, um alle Elemente von 0 bis zur aufgelisteten Länge minus eins zu
durchlaufen. Nullen sind bereits sortiert, so dass wir nicht mit 0 beginnen müssen. Also fangen wir mit einem an. Also unsere for-Schleife Ergebnis mit einem und endet eine Punktlänge minus eins. Jetzt erstellen wir eine ganze Zahl. Lassen Sie uns ID Schlüssel nennen, und es wird unser Element in dieser Liste sein. Also werden wir eine von i vergleichen. Also hier ist es drei zu 1012 und so weiter. Und wir verkauften es und eine ganze Zahl namens Spiel. Und wir haben eine andere Ganzzahl wird j sein,
i minus eins, um mit minus1 zu beginnen und zurück zu gehen, bis 0 zu erreichen. Und was wir hier tun, ist, dass wir diese Nummer starten, zum Beispiel, dass der Staat Fall ist. Die dritte Zeile, der dritte Schlüssel in einer Ganzzahl. Und wir dachten, diese Zahl auf eine ganze Zahl namens Schlüssel. Und dann haben wir die Position gespeichert, die wir erholen, um zu beginnen, was die Position i minus eins ist, j i minus eins. Also gehen wir auf die Seite mit dieser Position und gehen zurück, bis wir 0 erreichen. Also werden wir eine while-Schleife erstellen. Während j größer als 0 ist und der Schlüssel kleiner als a von J ist, müssen wir tauschen. Also zu sagen, hier ist, dass y j weniger
ist, größer als 0 ist. Also hier ist j in diesem Fall gleich eins. So gut. Und die zweite Bedingung, während Schlüssel, die zwei ist, ist kleiner als ein von J, in diesem Fall vier. Also müssen wir sie tauschen. Wir tauschen. Und dann noch einmal überprüfen
wir die Bedingungen. Wir haben j größer als oder gleich 0. In diesem Fall ist j gleich 0. Diese Bedingung ist also gültig. Und zwei in diesem Fall haben
wir auch hier und hier vier, also 23, also drei ist größer als zwei, dann gilt dies auch. Wir müssen noch einmal tauschen. Und dann beenden wir mit dieser for-Schleife, da j größer als 0 sein wird. Und in diesem Fall, also jedes Mal, wenn wir diese for-Schleife ausführen, wird
j durch eins dekrementiert. Und hier müssen wir dies austauschen, eine ganze Zahl namens tamp
erstellen. Und wie üblich, dass Swap sie nehmen a von j und Speicher hier, und zehn und a von j. A von j plus eins in diesem Fall. Und schließlich nehmen wir ein j plus eins und geben ihm den Wert von w also hier tauschen wir sie aus. Und jetzt sagten wir: Gehen wir zurück und drucken uns aus. Lassen Sie uns zunächst das Array so drucken, wie es vor dem Sortieren ist. So drucken Sie auf einem und etwas Platz. Dann führen Sie diese Methode mit a und dann wird das noch einmal gedruckt. Für lassen Sie uns das Licht aus dem Code
und der Zeit drucken und wird zuerst das ungesalzene hinzugefügt und dann erhalten wir das sortierte,
da wir die Einfügemethode verwendet haben, die wir hier erstellt haben. Jetzt können wir sehen, wie sich das jedes Mal verändert hat. Lassen Sie uns also
das Array ausdrucken , um nach jeder Änderung eine andere for-Schleife zu erstellen. Nach dem Ausführen der Schleife. Und drucken Sie ein J2 aus, in diesem Fall etwas Platz. Und dann, und hier müssen wir eine Insel drucken. Bevor Sie diese Schleife ausführen und ausführen, wird der Code dies erhalten. Also zuerst haben wir 32510. Wir beginnen mit i gleich eins. Also ich gleich onRestart, t gleich a von i, j ist gleich a von 12, und j ist gleich 0 in diesem Fall, was i minus1 0 ist. Dann haben wir eine while-Schleife, die nur
einmal ausgeführt wird , da J gleich 0 ist und dann empfohlen gelesen wird. Also die Bedingung hier, es wird nicht für eine andere Ausführung gültig sein. Daher müssen wir sie tauschen, da die beiden Bedingungen erfüllt sind. Dasselbe mit fünf. Wir vergleichen fünf mit jetzt. Fünf mit 25 ist größer als zwei, dann ist diese Bedingung nicht erfüllt. Wird die for-Schleife nicht mit einfach obwohl eingeben und I um eins inkrementieren. Jetzt haben wir die Nummer eins. Das Gleiche hier. Wir werden dieses mit jedem Element vergleichen und die beiden Zahlen austauschen. So werden zum Beispiel 15 sie tauschen. Und dann 13 tauschten wir sie noch einmal aus. Und schließlich 12, tauschen Sie sie aus. Und schließlich haben wir Dan. Dan ist größer als alle anderen Elemente. So wird es nicht in die Schleife, die while-Schleife, und wir werden mit den beiden Schleifen fertig sein, die innere und äußere Schleife. Und wir können drucken,
drucken, sagen, dass Sie aufpassen und ein neues Array aus. Also das ist es für die Einfüge-Sortierung. nächsten Videos werden wir weitere Sortieralgorithmen untersuchen.
18. Selection: Lassen Sie uns jetzt zu einem anderen Sortieralgorithmus gehen, ist die Auswahl. Der Selektionssortieralgorithmus sortiert ein Array, indem wiederholt
das minimale Element aus dem unsortierten Teil gefunden und es am Anfang gesetzt wird. Jetzt überlegen wir die aufsteigende Reihenfolge. Wir haben auch die absteigende Reihenfolge, in der wir
das maximale Element finden und es am Anfang speichern können. Und als Einfüge-Sortierung haben
wir zwei Teile. Der, der bereits sortiert war und der unsortierte Teil. Und bei jeder Iteration der Auswahlsortierung das minimale Element aus wird
das minimale Element aus
dem unsortierten Unterarray aufgenommen und in das sortierte Subarray verschoben. Also lassen Sie uns ein Beispiel verwenden. Wir werden die gleiche Liste hier verwenden. Und lasst uns das löschen. Wir haben diese Methode, löschen Sie diese. Und wir werden diese Methode hier arbeiten lassen. Aber vorher lassen Sie uns diesen Code ausführen und diese Liste verwenden. Jetzt. Aber wir werden in diesem Sortieralgorithmus tun, ist es, jedes
Mal das Minimum zu finden und es an der unsortierten den sortierten Teil zu speichern. Also zuerst werden
wir das Minimum finden und diese Liste hier haben wir eine als Minimum, nehmen diese 11 und tauschen sie mit dieser Nummer. Was auch immer diese Nummer ist, wir tauschen sie gegen eine aus. Also hier haben wir jetzt einen. Und so lassen Sie mich es hier schreiben. So haben wir 1253 und dass der nächste Schritt ist, das Minimum und diese Liste zu finden. Das Minimum ist also wahr, und wir müssen es an dieser Stelle beginnen. Also sind wir okay, da das Minimum zwei ist. Der nächste Schritt wäre also der gleiche wie der erste. Sense, wir müssen nichts ändern. Jetzt werden wir uns diese Liste ansehen. Wir haben 5310 und wir finden das Minimum hier. Das Minimum ist drei. Wir müssen es beim ersten Element speichern. Also müssen wir drei gegen fünf zum nächsten tauschen. Das heißt, sie zu tauschen. So bekommen wir 123510 und Glasschema verglichen diese beiden Zahlen wie üblich, Finden Sie das Minimum zwischen ihnen und speichern Sie es am ersten Element in dieser Liste. Und da zehn größer als fünf
ist, brauchen wir nichts zu tun. Und das ist unsere endgültige Liste. Also jetzt gehen wir voran und schreiben es als Code. Öffentliche statische, void, selektionsparameter eines Arrays, Integer. Und in diesem Fall zum Beispiel zuerst die Länge, müssen
wir
zum Beispiel zuerst die Länge,die Länge, die Länge,
die Länge speichern , um sie in der for-Schleife zu verwenden. Also hier haben wir die Länge dieser Liste. Neben unserer for-Schleife können
wir array.length oder beides sagen, das gleiche. Und jetzt müssen wir das minimale Element im unsortierten Teil finden. Also sollte der unsortierte Teil mit i plus eins beginnen. Also jedes Mal, wenn wir mit fertig sind, werde ich
das Minimum in dem Teil von i plus eins auf der Länge vergleichen und finden . Und hier haben wir n minus eins. Da wir nicht am letzten Element enden müssen, können
wir einfach hinzufügen und hier. Und die innere for-Schleife würde die beiden letzten Element vergleichen. Also lassen Sie uns in diesem Fall das Minimum als i gleich i speichern und jetzt sollten wir das Minimum und den unsortierten Teil finden. Also beginnen wir mit i plus eins und dem abgewinkelten Array, array.length oder und der gleichen Maxwell Einfachheit. Und jetzt werden wir jedes Element vergleichen, um das Minimum zu finden. Also zuerst haben wir gedacht, dass das Minimum bei Index i liegt. Der Index und eine ganze Zahl namens minimum. Erstens ist ich gleich 0. Also haben wir gedacht, dass die Mindestzahl in dieser Liste bei
Index 0 ist , um zu gehen und auf Index 0 zu schauen. Also werden wir drei finden und es ist nicht das Minimum. Also müssen wir diese Zahl mit allen anderen vergleichen. Und das ist, was wir tun werden, um ein j zu vergleichen. In diesem Fall ist j die Liste von i plus eins von hier bis zum Ende. Also, wenn i von j weniger als Array von Männern ist, dann müssen wir den Index und Männer tauschen, es wird tatsächlich der nächste sein. Also, was wir hier sagen, ist, dass Männer gleich sind, und lassen Sie uns mit diesem Beispiel arbeiten, um es besser zu verstehen. Also zuerst werden wir mit i gleich 0 beginnen, i gleich 0. Wir speichern n mindestens 0. Jetzt schauen wir uns diese Zahl an und j wird gleich 0 plus eins ist derjenige, der mit einem saß und, und mit 1234. Also werden wir mit vier enden. Wir werden Array von eins vergleichen. F von einem ist weniger als eine Reihe von Männern, ich von Männern. Denken Sie daran, dass viele xn gleich 0 und J, in diesem Fall ist es gleich eins, gehen und vergleichen T2, die eins mit drei,
nur Array von Minimum, Array von 0 hinzufügen . F. Zwei ist weniger als drei, dann ist das Minimum jetzt nicht mehr dieses. Es ist nicht mehr bei Index 0. Es ist bei Index j, in diesem Fall bei Index eins. Also geben wir Mindest- und NU-Wert von eins. Und das Gleiche wie zuvor. Jetzt ist J gleich zwei. Würde j, I,
a von j und a von zwei vergleichen . Wir haben I2 hier, fünf mit einem der neuen Minimum, das ist eins. Also sollten Sie jetzt als fünf mit 25 vergleichen ist größer als zwei, dann wird nichts passieren. Dann gehen wir hier, wir verglichen Array von drei, das ist eins mit L2. So ist man niedriger als T2. Also müssen wir den minimalen und neuen Wert geben, den Wert von eins. Und schließlich haben wir hier, an welchem Index, den Minimalwert, wie nachdem wir das Minimum mit dieser for-Schleife gefunden
haben, müssen wir dieses Minimum mit
dem Element in der sortierten Liste austauschen , wo wir sie sortieren sollten. Also, was Sie tun sollten, ist wie üblich, wir nehmen ein Minimum in einer ganzen Zahl namens gedämpft als konsultiert. Wir ändern, was immer es Minimum mit unserem Auge gibt. Und schließlich, geben Sie diese i Index ID Array bei Index i, den Wert von n. Also hier tauschen wir sie und gehen zurück und verwenden Sie diese Methode hier. Also Auswahl und die Arrays, Array und das Gleiche. Wir drucken sie aus und wir kriegen 123510. Also denke ich, dass die Auswahlsortierung einfacher ist als das Einfügen. In Bezug auf das Verständnis ist
es im Grunde nur das Minimum in der inneren for-Schleife zu finden und es dann mit dem ersten Element hier zu
tauschen. Aber hier. Und das ist es für die Auswahl, so dass es Sie im nächsten Video sehen.
19. Bubble: Der dritte Sortieralgorithmus, über den wir sprechen werden, ist Bubblesort. Bubblesort ist der einfachste Sortieralgorithmus, der durch
wiederholtes Austauschen der benachbarten Elemente funktioniert , wenn sie sich im Grundwasser befinden. Betrachten Sie also diese Liste von fünf Elementen. Zunächst einmal vergleichen wir die ersten beiden Elemente und tauschen sie aus, da fünf größer als eins ist. Und dann tun wir das gleiche für Nummer 235 ist größer als vier, dann sollten wir tauschen. Das ist jetzt das Nest. Und das Gleiche für die Elementnummer. 345 ist größer als zwei, sie sollte tauschen. Und schließlich haben wir 58. Und da sie in der richtigen Reihenfolge sind, ist
acht größer als fünf, dann tauschen wir nicht aus. Jetzt können wir sehen, dass diese Liste noch nicht sortiert ist, da wir 1424 ist größer als zwei. Also, was Sie tun sollten, ist wiederholen Sie die gleichen Schritte und immer wieder, bis wir die sortierte Liste erreichen. Das schlimmste Szenario, wenn wir das hier ein Element haben, zum Beispiel, dass 0 sagen. Diese 0 sollte also 12345 mal getauscht werden. Wir haben sechs Elemente in dieser Liste. Und das schlimmste Szenario ist, das 05 Mal zu tauschen. Also, wenn wir eine Liste von n Elementen haben, sollten
wir n minus einmal austauschen. So können wir diese Operation n minus einmal durchführen, und schließlich erhalten Sie diese sortierte Liste. Also lasst uns voran gehen und diesen Code schreiben, um eine andere Methode zu erstellen. Oder es blase mit einem Parameternamen ID-Array wie gewohnt und würde hier funktionieren. Also zuerst haben
wir eine for-Schleife. Wie gesagt, von 0 bis n minus eins, können
wir array.length sagen. Und in dieser for-Schleife haben wir eine andere for-Schleife, um alle zwei Elemente zu tauschen. Wenn der falsche Code für wir alle zwei benachbarten Elemente vergleichen, a von j ist a von j größer als a von j plus eins. Dann tauschen wir sie einfach aus. Lassen Sie uns einen ganzzahligen Tamp erstellen. Jetzt hier, RAM-Frühling, und das Gleiche hier. Und wenn wir bedenken, dass temp gleich Array Punkt a j und a j ist, was immer es bei j plus eins gibt. Und dann, wenn j plus1, der Wert Salz, und das ist unsere Methode und es tut mir leid, wir werden n minus eins und n minus eins haben. Lasst uns diese Blase benutzen und sie hier und das letzte noch einmal ausdrucken. Und wir kriegen 325110. Dies ist vor dem Essen und nach dem Salzen 123510. Jetzt kann unser Code verbessert werden, indem eine einfache Aufgabe ausgeführt wird. So
haben wir hier zum Beispiel die Elemente ausgetauscht. Das erste Mal. Und dann mussten
wir beim zweiten Mal nur 42 tauschen. Und diese Liste ist jetzt sortiert. Aber in unserem Beispiel sind
wir verpflichtet, alle Liste und minus1 mal durchzugehen. Also eine Sache, die wir verbessern können, ist f. Und wir kamen zu einem Punkt, wo unsere innere for-Schleife keine Aufgabe ausführen, dann können wir gleichsetzen, weil wir keine Elemente zu tauschen haben. So können wir diese Aufgabe mit einem Booleschen tun. Also nennen wir es „swat“. Zuallererst ist es, sollte sein und geben Sie ihm nicht den Wert hier wird ihm den Wert innerhalb unserer äußeren for-Schleife geben. Swap zwei wird in diesem Fall zuerst gleich false sein. Und wenn, wenn wir nur mindestens ein Mal geworfen haben, dann wird nach dem Ausgehen aus dieser inneren Schleife den Austausch überprüfen. Wenn vertauscht gleich false. Dann haben wir hier keinen Austausch durchgeführt. So können wir die for-Schleife verlassen, da unsere Liste jetzt sortiert ist. Damit wir kaputt machen können. Andernfalls wird kontinuierliches Austauschen. Und wir führen den Code aus, wir erhalten das gleiche Ergebnis wie zuvor. Aber jetzt ist es viel einfacher und es wird nicht so viel Zeit wie zuvor in Anspruch nehmen. Das ist es also für Bubblesort, der einfachste Sortieralgorithmus zwischen allen von ihnen. Und wir sehen uns im nächsten Video.
20. Merge: Wechseln Sie zu einem anderen Sortieralgorithmus, Merge-Sortierung. Merge Sortierung ist ein Dividen- und Eroberungsalgorithmus Also lass mich weitermachen und eine neue Klasse erstellen. Unterklasse, erstellt Einfügungsname es zusammengeführt. Und er wird zusammenführen Art diskutieren. Betrachten wir zunächst eine kleine Liste von vier Elementen und diskutieren dann eine größere Liste. Betrachten wir zum Beispiel eine Liste mit vier Elementen, 2431. Also, wir werden tun, ist, diese Liste in zwei Listen zu teilen. Der erste, den wir 24 haben, enthält zwei Elemente, und der zweite wird die letzten beiden Elemente haben, 31. Dann werden wir jede Liste allein sortieren. Also 24 sind bereits sortiert, so dass wir nichts tun müssen, tippen Sie sie einfach ein. Und hier haben wir 31, wir müssen sie tauschen. Das ist also unsere zweite sortierte Liste. Und danach müssen wir sie verschmelzen. Da sie sortiert sind. Das erste Element sollte also das kleinste sein. Also werden wir das erste Element in den beiden Listen vergleichen. Hier haben wir 21. Man wird also ausgenutzt und würde einen schreiben. Und dann werden wir vergleichen zwei mit 32 ist kleiner als zwei, und dann drei mit vier. Das Gleiche, Stolz v und dann noch das letzte Element in der ersten Liste, seit vier. Und dann sind wir fertig. Verwenden wir jetzt eine größere Liste. Wir haben in dieser Liste sieben Elemente. Wir teilen diese Lektion auf Toiletten. Und die erste Liste wird vier Elemente und die zweiten drei Elemente sein. Dann machen wir das gleiche mit dieser Liste geteilt zwei bis 22, das gleiche mit der anderen auch. Und wir haben immer noch nur ein Element, also teilen wir es in eins und wir werden dasselbe tun. Und diese Liste, wir haben zwei Elemente, würde sie in ein Element und jede Liste aufteilen. Und dann haben wir 1234567 Liste. Jede Liste enthält nur ein Element. Danach müssen wir sie verschmelzen. Wir beginnen mit den beiden Elementen hier. Wir haben siebenunddreißig und achtunddreißig. Siebenundzwanzig sind kleiner, als du 2738 schreiben würdest. Dasselbe hier, 343982. Und danach müssen
wir die beiden Listen hier zusammenführen, wie wir es im vorherigen Beispiel getan haben. Also zuerst haben wir drei,
dann haben wir siebenundzwanzig, achtunddreißig, dreiundvierzig. Das Gleiche hier. Und wir haben endlich unsere endliche Liste Finale gesalzen. Die Idee der Merge-Sortierung ist ziemlich einfach. Es erfordert, die Methode würde mehr als 1s aufrufen,
zwei, bis wir erreichen. Liste eines Elements, dann sortierte Listen neu erstellen, wie hier gezeigt. Gehen wir weiter und schreiben es jetzt. Also, um die Merge Sort abzuschließen, müssen Sie zwei Methoden schreiben. Die erste Methode könnte gedacht werden, die Hauptfunktion, die das Array mit einer anderen Methode sortiert. Also lasst es uns schreiben. Öffentliche Leere. Nennen wir es öffentlich statisch, leer. Und es wird
eine ganze Zahl und keinen Index und hohen Index akzeptieren . Sie stellen dar, wo sollen wir anfangen? Und dann, wenn niedrig weniger ist als die harte, dann können wir weitermachen. Sonst brauchen wir nichts zu tun. Es bedeutet, dass niedrig größer oder gleich hoch ist. In diesem Fall haben wir nur ein Element in der Liste und wir müssen es nicht zitieren. Also arbeiten wir daran, wenn niedrig weniger als hoch ist. Also, was wir hier tun sollten, ist auf den mittleren Index gleich niedrig geteilt durch zwei. Und dann, was wir tun werden, ist die Liste zu sortieren und in zwei Listen zu teilen. Und dann, so der linke Teil allein und dann so das Recht, aber so kann das tun, wird unser Bei ein eingeben, wir haben mit niedrigen und dann sortieren das Recht, aber in einer Mitte plus eins. Und danach müssen wir die sortierten Hälften verschmelzen. Also werden wir eine Methode Limit Merge aufrufen. Und es wird als Parameter
links, niedrig und hoch nehmen . Und lassen Sie uns weitermachen und unsere Merge-Methode erstellen. So haben wir hier können es privat, privat, statisch, void, fusioniert und wie üblich Methode machen. Und jetzt müssen wir die Größen der beiden Subarrays finden und zusammengeführt werden. Der erste Typ ist also Limit n eins gleich minus eins. Und der zweite ist N2 gleich hi minus. Jetzt haben wir die beiden Größen. Neue Listen. Also nennen wir es Liste eins. Oder wir können links und rechts ausstoßen. Also haben wir die Größe links und rechts. Diese zweite Größe. Danach müssen Sie die Daten von diesem ursprünglichen Array in unsere zwei Arrays kopieren. Jetzt machen wir das. Wir verwenden einfach eine for-Schleife mit der Grenze von un1 und kopieren alle Daten von rechts nach links. Also links ich gleich i und eine andere for-Schleife, um die Daten des
rechten Teils des Arrays in unsere Liste namens rechts zu kopieren . In diesem Fall beginnen wir mit einem Array von Mitte plus eins und plus j und jetzt haben wir die Daten hier kopiert. Außerdem tut es mir leid. Und so kopieren wir unsere Daten. Jetzt müssen wir sie zusammenführen. Also, was Sie tun sollten, ist eine while-Schleife zu erstellen, um alle Daten, die wir gespeichert und links und rechts kopiert zurück zu unserem ursprünglichen Update zu kopieren. Wie wir in diesem Beispiel gesagt haben, nach dieser Phase müssen
wir sie
nach dieser Phasewieder in der ursprünglichen Liste speichern. Also hier werden wir die beiden Elemente vergleichen und dann
starten wir sie und das ursprüngliche Array und das gleiche hier. Wir vergleichen diese Elemente zusammen und wir erhalten unsere sortierte Liste. Also gehen wir zurück zu unserem Code und schreiben eine while-Schleife. Und die Bedingung dieser while-Schleife, dass wir immer noch Elemente in links und rechts haben. Also hier lassen Sie uns ganze Zahlen erstellen i gleich 0, und das gleiche für J, 0. Und lassen Sie uns eine ganze Zahl und einen Namen erstellen, um sie zu benennen, die gleich o ist. jetzt, während i kleiner als n ist, eins, was die Größe von links und J ist kleiner als. Und zwei werden am Hang arbeiten. Nun zuerst werden wir
links mit rechts von j vergleichen , von i ist weniger als j, dann speichern wir es. Diese Komponente und die ursprüngliche Liste. Also wird a gleich links sein. Und dann erhöhen wir i da wir damit fertig sind, zum Beispiel, gehen wir zurück. Was wir in diesem Fall getan haben, ist, dass wir links von i hier, 27 mit drei verglichen haben. F, 27 ist weniger als drei. Wir sollten es hier aufbewahren. Nun, in diesem Fall ist
27 größer als drei, dann sollten wir drei in diesem Fall speichern. Sonst sollten wir es aufbewahren. Und bei jeder k abgeleiteten Komponente und erhöhen j um eins. Und in beiden Fällen sollten
wir k implementieren, da es in beiden Fällen gefüllt wird. Nun, nachdem wir diese while-Schleife beendet haben, haben
wir möglicherweise einige Elemente in jeder Liste übrig. Um also das Original auszufüllen, sollten
wir alles vervollständigen, was in unseren beiden Listen übrig ist. Das würde eine while-Schleife erzeugen. Während ich weniger als N1 ist. Die N1, wenn i gleich N1 ist. Und wir brachen aus dieser while-Schleife wegen i gleich eins, dann wird diese while-Schleife nicht funktionieren, da sie bereits gleich Zeile eins wäre. Also, wenn dies der Fall ist, sollten
wir nur kaufen, was es
im linken Teil gibt und
inkrementieren, k. und das gleiche mit n2, wenn j kleiner ist als und genau das gleiche zu tun, um Inkrement j zu schreiben und k. Jetzt sind wir mit unserer Merge-Funktion fertig. Und lasst uns weitermachen und es benutzen. Und ich werde Hauptmethode. Also gehen wir zurück. Aber bevor wir unsere Grenzen überprüfen. Hier haben wir links und rechts. Und hier sollten wir mit einem Knoten beginnen. Da wir nicht mit Nullen gesessen sind, saß mit was auch immer unser Index hier ist. Und jetzt gehen wir zurück und dokumentieren hier. Unsere Hauptmethode. Dies erzeugt eine Verzögerung gleich, in diesem Fall vier bis 718 und verwenden Sie es jetzt, verwenden Sie die Sortierung mit einer 0 Länge minus eins. Und dann verwenden Sie eine for-Schleife, um unsere Elemente auszudrucken. Und Zwietracht 12478. Also das ist es für die Zusammenführung. So sehen Sie das nächste Video.
21. Schnelle Sortierung: Wie Merge Sortierung ist quicksort ein Dividen- und Eroberungsalgorithmus. Es nimmt ein Element als Pivot und partitioniert das Array um den Pivot. Es gibt viele verschiedene Versionen von Quicksort, die großen Pivot und verschiedene Möglichkeiten. Wir können den Drehpunkt als erstes Element auswählen. Erstes Element, zufälliges Element oder das Medium. Ich hatte erklärt, was Pivot in einem Moment ist. Lasst uns zuerst eine Liste schreiben. Betrachten wir also, wir haben eine Liste enthält 101819. Und so ist das unsere Liste. Jetzt wählen wir Element als Drehpunkt. Gehen wir also voran und wählen Sie zum Beispiel
das letzte Element und trennen Sie sie, um es zu verstehen. Und es wird das Gleiche hier haben. Also hier haben wir diese Liste und das ist unser Drehpunkt. Also genau hier unten. Und hier haben wir das erste Element. Jetzt brauchen wir zwei Pfeile, 2,2 bis zwei Positionen auf dieser Liste. Die erste, wir beginnen mit dem ersten Element von links und dem letzten Element vor dem Pivot. Also hier haben wir unsere erste, sagen wir, dies ist das erste Element und das ist das letzte. Nun, was tun wird, ist, das erste Element zu vergleichen, wenn es größer als der Drehpunkt ist, als wir es austauschen müssen, wir müssen mit einem Budget enden, das
niedriger ist als der Drehpunkt und der andere Teil sollte größer sein als der Drehpunkt. Also, um das zu tun, zuerst, zehn ist größer als der Drehpunkt. Jetzt, dann wird sich bewegen, wird zu 80 bewegen. Hier haben wir 80. Jetzt sind wir bei 8050. So ist 80 bereit, ausgetauscht zu werden. Jetzt schauen wir uns 5050 an. Ist 50 größer als der Drehpunkt? Nein, dann können wir es tauschen. Also jetzt tauschen wir 50 mit 80 aus. Hier werden 80 haben, und hier haben wir 15. Jetzt ändern wir die Positionen dieser Pfeile. Wir haben diesen Pfeil um 42. 30. Das Gleiche wird hier dasselbe tun. Wir haben 13, ist 30 niedriger als der Drehpunkt? Ja. Dann müssen wir nicht tauschen. Es wird zu einem anderen gehen zu 90 gehen. Und jetzt werden wir 90 mit 40 vergleichen. 90 größer als der Drehpunkt? Ja. Dann müssen wir es austauschen. Ist 40 niedriger als der Drehpunkt? Ja. Dann müssen wir diese beiden Elemente austauschen, wird 90 hier haben. Und die, jetzt die beiden Pfeile, lassen Sie uns sie nennen, um zu sehen, was passieren wird. Wir haben niedrig und hoch. Nun, bevor sie tauschen, waren dies die Besitztümer, niedrig und hoch. Niedrig bei Position 0123 und hohe Position für. Nun, nachdem wir die beiden Elemente getauscht
haben, müssen wir um eins erhöhen und hoch um eins dekrementieren. Also werde ich an Position sein, an dieser Position und niedrig wird an dieser Position sein. Und wann immer niedrig gleich oder höher als hoch ist, können
wir wissen, dass wir hier fertig sind. Da Lappen hoch gegangen ist. Nun, das letzte, was wir tun sollten, ist, dieses Element mit dem Drehpunkt zu tauschen. Du wirst also 17 haben und am Drehpunkt 90. Jetzt können wir sehen, dass alle Elemente kleiner als 70 und alle Elemente hier sind groß und 70. Das ist also die Idee des QuickSort. Wir können den gleichen genauen Algorithmus zu dieser Liste durchführen. Wir können 40 als Drehpunkt wählen und entsprechend arbeiten. Und das Gleiche geht hier. Und wir lassen Rekursion die Arbeit für uns erledigen. Dies ist die allgemeine Idee, und wir werden die Rekursion verwenden um sie mehr als einmal zu implementieren ist entstanden. Also haben wir hier zwei Methoden. Die erste Methode wird privat, integer sein. Lassen Sie uns die Partition umbenennen. Es wird die Parameter nehmen und emittieren. Und niedrig als diese Methode, wo wir das letzte Element als Drehpunkt nehmen. Das Pivot-Element an seiner korrekten Position im sortierten Array. Und Fälle alle kleineren, kleineren Elemente als der Drehpunkt nach links und größer nach rechts. Lassen Sie uns also voran gehen und mit dieser Methode beginnen. Zunächst einmal haben wir unser Drehpunkt erstellt wird. Jetzt ist der Vektor gleich dem letzten Element in dieser Liste. Und wir haben den Index des kleineren Elements. Es ist ein sname i
, der gleich minus1 ist. Und in diesem Fall beginnen wir mit unserer for-Schleife. Wir fangen bei niedrig an. Den ganzen Weg zu. Jetzt müssen wir überprüfen, ob das aktuelle Element kleiner als der Pivot ist. Also, wenn j in diesem Fall weniger ist, und wir müssen i erhöhen
Eins , Swap und Array j Also lasst es uns tauschen. Und zu a. Dann gleich,
sorry, a gleich i, gleich j. Und schließlich, zurück zu G. Also jetzt tauschten wir die beiden Elemente. Nachdem wir mit dieser Wortschleife fertig
sind, müssen wir den Drehpunkt mit bei einem i plus eins tauschen. Erstellen Sie in diesem Fall eine andere Zeit und tauschen Sie die beiden Elemente aus. Wie gesagt. Hier haben wir den Drehpunkt ist an Ort A. Und dann geben Sie die Bräune zwei. Jetzt haben wir die beiden Metadaten in Elemente getauscht und dann werden wir einfach plus eins zurückgeben. Das ist also unsere Methode, die Partitionsmethode. Diese Methode nahm das letzte Element als Pivot, platzieren Sie das Pivot-Element an seiner richtigen Position in der sortiert an a, und platziert alle kleiner nach links und größer abgeleitet. Nun ist die andere Methode die Hauptfunktion, die diesen Quicksort implementiert. Und nennen wir es öffentlich statisch, leer. So dass es drei Parameter wie gewohnt, und niedrig und hoch. Zunächst werden wir überprüfen, ob der Fluss nicht größer als hoch ist. Wir können arbeiten, sonst wird nicht funktionieren, weil es keinen Sinn ergibt. Und wir haben, wir werden eine ganze Zahl erstellen, lassen Sie uns es nennen, durch ist diese Partitionierung und Tiefe. Das wird, wo wir diese Methode verwenden, die wir hier erstellt haben. Pi würde also Partition am niedrigen verwenden. Nun, nachdem wir den Index vorbeigeholt
haben, sollten wir die beiden sortieren, den linken
Teil abscheuen, richtig? Aber so werden wir die gleiche Methode noch einmal verwenden, ohne einen anderen Weg zu Pi minus eins. Und das gleiche durch plus eine andere Art zu schreiben. Und dann sind wir mit dieser Methode fertig. Du kannst es benutzen. Und unsere Hauptmethode. So erstellen wir ein Array, zum Beispiel, dampfen es, und mit einigen Werten 426173. Und wir werden die Sortiermethode
0 und aktualisierte Länge minus1 aufrufen . Erstellen Sie dann eine for-Schleife und drucken Sie die Elemente dieser Liste aus. Also wie üblich, mit etwas Platz hier, und lasst uns voran gehen und rennen. Der Code erhält 1234567. Dies ist also das Array sortiert Array nach der Durchführung dieser QuickSort. Also das ist es für Quicksort. Wir sehen uns im nächsten Video.
22. Lineare und binäre Suche: Manchmal wollen wir überprüfen, setzen Sie ein Element aus der Liste. Und hier können wir Suchalgorithmen verwenden. Wir haben mehrere Sessions Algorithmen und wir werden mit linearer Suche beginnen. Also lassen Sie uns voran und erstellen Sie einen Klassennamen. Und dann die Hauptmethode, lassen Sie uns unser Array erstellen. Das ist also unser Array. Und nehmen wir an, Sie wollen nach der Zahl in eine ganze Zahl suchen, Zahl gleich zwei. Nun soll diese lineare Suche die ganze Liste
durchlaufen und prüfen, ob das Element in dieser Liste gleich zwei ist. Bringen Sie die Position zurück. Andernfalls, wenn keine Elemente mit dieser Zahl übereinstimmen, sollten
wir minus eins zurückgeben. Lassen Sie uns also voran gehen und unsere Methode erstellen. Und es wird
diese Liste und eine ganze Zahl nehmen . Also, was wir tun werden, ist, diese Zahl mit jedem Element in dieser Liste zu vergleichen. Verwenden Sie also eine for-Schleife, um durch alle Tiere in der Liste zu gehen. Und Nummer zwei Position. Dann sollten wir diese spezifische Position zurückgeben. Sonst. Die Methode funktioniert also nicht. Wir sollten eine ganze Zahl zurückgeben. Und andernfalls, wenn wir am besten durch die ganze Liste und wir keine ganze Zahl zurückgegeben haben, dann haben wir nicht gefunden, dass die Zahl angegeben Nummer minus eins ist. Und wenn wir das t
bei n Nummerverwenden bei n Nummer und es ausdrucken, werden
wir dann Decks der Nummer zwei bekommen. Jetzt hier, 22. Lassen Sie uns die Zahl ändern, zum Beispiel zwei zu sechs. Also hier haben wir die Nummer sechs bei Index drei in dieser Liste gefunden. Und das Gleiche, wenn wir es zum Beispiel
auf neun ändern und ausdrucken, bekommen
wir vier und vier. Jetzt haben wir eine andere Nummer ausprobiert, die nicht in der Liste ist, wir bekommen minus eins. So funktioniert die Suche. Es ist sehr einfach, aber es dauert. Viel Zeit. Wir werden später über die Zeitkomplexität für jeden Algorithmus sprechen. Nun, lassen Sie uns zu einem anderen Suchalgorithmus gehen ist die binäre Suche. Hier sollten wir ein sortiertes Array oder eine Liste haben, und Sie werden wissen, warum in einem Moment. Die Idee der binären Suche besteht also darin, ein sortiertes Array zu suchen, indem
das Suchintervall wiederholt in zwei Hälften geteilt wird, um mit einem Intervall zu beginnen, das das gesamte Array abdeckt. Wenn der Wert des Suchschlüssels kleiner als das Element in der Mitte des Intervalls ist, verengt das Intervall auf die untere Hälfte, andernfalls verengen Sie es. Die obere Hälfte. Überprüfen Sie wiederholt, bis der Wert des Intervalls gefunden wird oder das Intervall leer ist. Schauen wir uns ein Beispiel an. Hier haben wir diese Liste. Zuallererst nehmen wir das mittlere Element. Hier. In diesem Fall ist es 16. Und jetzt wollen wir nach 23 suchen. Und unser Array ist sortiert, wie wir gesagt haben. Also überprüfen wir, ob 23 größer als 16 ist, dann nehmen wir diese Hälfte. Sonst, wer sollte diese Hälfte nehmen? Jetzt, da es größer als 16 ist, werden wir alle Elemente hier ignorieren, weil wir absolut sicher sind, dass 23 dann alle erstellt wird, da sie sortiert sind. Und wir müssen jetzt nach diesem Teil suchen. Und wir nehmen die Mitte dieses Teils und machen das gleiche hier. F2 und F3 ist größer als 56. Nein, ist es nicht. Dann müssen wir nach links gehen. Aber, und er fing an, die Mitte als 23. Und wir fanden 23, um den Index fünf zurückzugeben, in diesem Fall. Für jetzt. Und unsere Methode. Lassen Sie uns eine neue Methode erstellen, binäre Suche. Und es wird ein Array wie gewohnt dauern. Und der niedrige Index X. Also X ist das Element für Sitzung vier in dieser Liste. Und jetzt müssen wir die Mitte und Tiefe finden. Und um das zu tun, gehen wir zurück und sehen in diesem Beispiel, hier haben wir niedrig und hoch zu dem, was wir getan haben, ist zwei, subtrahieren neun minus 0 über 4,5, weil seine ganze Zahl, es wird vier dauern. Und das gleiche hier, wer nahm 59 minus 54 über zwei, das ist zwei plus der niedrige Index plus fünf gleich sieben, fundamentalistische sieben. Und das Gleiche, was wir auch hier gemacht haben. Und lassen Sie uns zurückgehen und die Bedingung festlegen, dass, wenn hoch kleiner als die Last ist, dann kleiner oder gleich dem Knoten ist, als wir es getan haben. Sonst sollten wir arbeiten. Also hier ist größer, als die Last funktioniert. Andernfalls, wenn wir uns drehen, sollten
wir nicht minus1 zurückgeben. Nun, lassen Sie uns unsere Mitte finden, wie wir gesagt haben, ist gleich niedrig plus hoch minus niedrig von zwei. Das ist also unser Metall. Wenn Metallelement gleich unserem x ist gleich zwei Behauptung. Und dann kehren wir einfach zurück. Sonst sollten wir überprüfen, wie wir gesagt haben, gehen wir zurück. In diesem Fall haben wir 2323 ist größer als 16. Dann arbeiten wir damit. Aber wir werden die gleichen exakten Stempel und diesen Teil machen, sonst sollten wir es tun Schritte auf diesem Bug. Um dies zu tun, vergleichen
wir einfach bei a zu x. F bei a ist größer als x, wir sollten BinarySearch zurückgeben. Dies ist das gleiche, aber niedrig, und wir müssen ändern, wie man mittlere Minus1 geht. Wir sind absolut sicher, dass alte Mitte und alle anderen Elemente auf
der rechten Seite größer als S, dann würde das nicht x sonst zurückkehren. Und binäre Suche, um die linke Seite zu suchen. Also fangen wir mit der rechten Seite an, tut mir leid, das Metall plus eins bis hoch und die gleiche Zahl x. Gehen wir zurück und realisiert hier. Und unsere Hauptmethode, wir werden die binäre Suche bei einer
0 und minus eins
unddie Anzahl der Suche nach Zahlen ausdrucken 0 und minus eins
und . Gehen wir weiter und führen Sie den Code aus. Wir bekommen minus 12, zum Beispiel sechs. Und wir werden es kriegen. Sex ist also an Position drei. Und das ist eine binäre Suche. Binäre Suche ist viel schneller als lineare Suche. Seit jedes Mal, wenn wir die Liste durchlaufen, schneiden
wir sie in zwei Hälften. Bei der linearen Suche sind
wir jedoch verpflichtet, alle Elemente in der Liste zu durchlaufen. Wir haben noch einige Suchalgorithmen und wir werden über sie in den nächsten Videos sprechen.
23. Jump: Wie die binäre Suche ist Sprünge ein Suchalgorithmus zum Sortieren von Arrays. Die Grundidee besteht darin, weniger Elemente als die lineare Suche zu überprüfen, indem durch feste Registerkarten springen oder einige Elemente überspringen, anstatt alle Elemente in der Liste zu durchsuchen. Betrachten Sie zum Beispiel, dass wir diese Liste haben. Wir haben 16 Elemente hier. Nehmen wir an, wir suchen nach Nummer 55. So wird die Sprungsuche den Wert von 50 mit einigen Schritten finden. Betrachten wir zunächst, dass die Blockgröße, die wie für seit 16,
Quadratwurzel von 164 gesprungen werden soll . Also zuerst wird es von Index 0 auf Index vier springen. So wird es auf 01234 springen. Sprung zu diesem Element im Vergleich zu 5535 ist immer noch größer als drei. Dann springen wir noch einmal zu irgendeinem. Das Gleiche hier, 21 ist weniger als 55, dann müssen wir springen, wird auf 144 springen. Und dann können wir sehen, dass 144 größer als 55 ist. Also gehen wir zurück zu 21 und führen eine lineare Suche von 21244 durch, bis wir unser Element auf Nummer 55 finden. Normalerweise verwenden wir die Quadratwurzel der Länge als Blockgröße, die gesprungen werden soll. Denn im schlimmsten Fall ist
dies die beste Schrittgröße. Also fangen wir mit unserem Code an. Springen Sie zu den Haupt-IJs von Integer und x , die wir in dieser Liste suchen werden. Und hier müssen
wir zuerst die Länge des Tages speichern. Wir müssen unseren Stapel wählen. Und wie gesagt, nehmen wir die Quadratwurzel von n mit der Masse. Und diese Masse Quadratwurzel, zum Beispiel,
nehmen wir an, wir haben 17 Elemente, geben US 14 bestimmte Zahlen. Also nach der Einnahme der Quadratwurzel von und wir formatiert mit Math.Floor. Und dann, da wir es in einer ganzen Zahl speichern, um zu ENT konvergieren. Und wenn das Element existiert, dann müssen wir einen Block finden, in dem das Element vorhanden ist. Gehen wir also zurück zu unserem Beispiel. Und er 55 ist zwischen 2144. Also müssen wir diese beiden Elemente finden. Und wir haben bereits eine ganze Zahl. Wir erstellen eine andere Entität oder nennen wir es, zum Beispiel, vorherige, flüssige bis 0. Also am Anfang ist das vorherige gleich 0, also ist es an Position 0 und Schritt ist an Position vier. Und wenn das Element in diesem Intervall nicht gefunden wird, dann sollten wir vorherigen den Wert von vier geben. So vorherige ist jetzt an Position vier und wir müssen vier hinzufügen, um den Schritt. Schritt wäre also an Position acht und weiter bis wir unser Element in diesem Intervall und unserem Intervall finden. Um das zu tun, müssen
wir eine while-Schleife erstellen und die wilde Schleife so einstellen, dass bei a kleiner als x ist. a kleiner als x ist.
Nun könnten wir zu einem Punkt kommen, an dem, wenn wir weiter vier hinzufügen, der Schritt, wir vielleicht größer als n, dann können wir nicht mit einem halben Schritt zugreifen. Also, anstatt auf Array von Schritt zuzugreifen, der ein Radarminimum zwischen Schritt und, und sagt. Jedes Mal, wenn wir diese Schleife ausführen, müssen
wir vor dem neuen Wert ändern. Und das gleiche für Schritt erstellen, um hinzuzufügen. Was immer wir hier haben. Also fügte es hinzu. Und dann werden wir vorherige ist größer als oder gleich. Und dann sind wir fertig. Wir haben das Tier nicht gefunden, das einfach minus1 zurückgibt. Und er sollten wir zu Integer wechseln. Jetzt. Also, was wir hier in dieser while-Schleife sagen, lassen Sie es an diesem Beispiel verwenden. Zuallererst haben wir vorherige gleich 0 und Schritt gleich für den Besitz. Für. Jetzt. Wir gehen durch diese while-Schleife. Zunächst werden wir überprüfen Array von Minimum zwischen Schritt und dann Schritt ist sicherlich kleiner als n. in diesem Fall ist Schritt gleich vier. Also Mathe bei einem von vier, das ist drei. In diesem Fall werden wir überprüfen, ob drei kleiner als x ist. Ja, dann werden wir die Ausführung dieser while-Schleife fortsetzen wird die Werte ändern. Nun, vorherige ist gleich vier und Schritt ist gleich acht. Und dann prüfen wir, ob wir die Grenzen überschreiten. Wenn vorherige größer als oder gleich n ist, Dann haben wir die Grenzen überschritten und wir getan, wir haben keine Zahl gefunden, die Acts übereinstimmt. Also, jetzt sind wir auf Position vier. Und Position acht. Das Gleiche. Wir vergleichen diese 21 mit 5521 ist weniger als 55 und wir müssen die while-Schleife noch einmal ausführen, bevor es jetzt an Position acht ist. Das ist also die Position für diese Positionshilfe. Und der Schritt ist an Position 12. In diesem Fall haben wir 144. So vergleichen Sie
einhundertvierundvierzig, fünfundfünfzig und fünfundfünfzig Jahre weniger als ein 144, dann wird die Schleife verlassen. Nachdem wir den Wert von acht und Schritt den Wert von 12, dann haben wir unser Intervall und 55 ist in diesem Intervall. Nun, nachdem wir die while-Schleife verlassen
haben, müssen wir eine lineare Suche nach x und y und eine andere while-Schleife durchführen. Also, während wir mit dem vorherigen saßen,
jetzt, da die vorherige an Position acht und Schritt ist an Position einhundertvierundvierzig und fünfundfünfzig, die zeigte, dass Empfänger undeutlich dritten Intervall ist, dann werden wir beginnen Sie mit 21 und fahren Sie fort. So weit tragen im vorherigen ist weniger als x, dann werden wir um eins erhöhen. Und wenn wir zu einem Punkt gekommen sind, wo vorherige gleich einem Schritt ist, gleich 12 über n, Also gleich Minimum zwischen den beiden ganzen Zahlen, entweder Stempel. Und dann müssen wir brechen oder zurückgeben minus1 kann einfach minus eins zurückgeben. In diesem Fall, da wir unsere Nummer nicht gefunden haben. Und dann überprüfen wir, ob wir das Element gefunden haben. Also, wenn Array vorherigen gleich x ist, dann geben wir diese Position zurück und geben minus eins zurück. Wenn wir sterben, haben wir es nicht gefunden. Das ist also hier. Wir haben ein Adder kann nicht konvergieren von n Boolean, wir haben eine fehlende gleich. Also das ist es, das ist unsere Funktion. Und lass uns voran gehen und es hier wählen. Also drucken wir
Brocken aus und suchen nach 55. Also lasst uns das nehmen und sie in unser Array stellen. Das ist also unser Array und es wird zehn zurückgeben. 55 ist also an Position zehn. Also waren diese ersten beiden Zeilen aus den vergangenen Funktionen jetzt diese Stunde als unsere Position, wo 55 auf dieser Liste steht. Also das ist es für Sprünge. Wir sehen uns im nächsten Video.
24. Interpolationssuche: Und andere Suchalgorithmus als Interpolationssuche. Die Interpolationssuche funktioniert besser als die binäre Suche. Weil die binäre Suche immer auf einer mittleren Elementbasis überprüft wird. Interpretation kann jedoch nach dem Wert des zu durchsuchenden P an
verschiedene Orte gehen . Also zum Beispiel, wenn wir für die Nummer drei und diese Liste suchen wollen, wenn wir binäre Suche verwenden, wird gehen und überprüfen in der Mitte. Also entweder 1321034, also ist dies die Mitte der Liste. Wenn wir jedoch Interpolationssuche verwenden, wird auf den Wert gehen, der
näher an unserer Zahl mit einer bestimmten Formel ist , und wir werden später darüber sprechen. Also ist er drei näher an 0, als es näher an 610 ist. Unsere Formel wird uns zu einer Zahl zwischen diesen führen. Also die gleiche Idee wie binäre Suche, aber anstatt ein mittleres Element zu haben, werden
wir eine Position haben, die sich entsprechend unseren Elementen ändern wird. Lassen Sie uns also voran und erstellen Sie unsere Methode öffentlich. Nennen wir es Interpolation. Und wie in der Regel ein Array von Elementen
und die Größe des Elements zu nehmen , sowie die t oder sagen x. Jetzt müssen wir unsere niedrigen und hohen und niedrigen
gleich 0 setzen und werden und minus1 sein. Jetzt werden wir unsere while-Schleife betreten. Niedrig ist kleiner oder gleich i. Andernfalls brauchen wir nicht mehr zu arbeiten, weil wir unser Element nicht gefunden haben. Es ist also das gleiche wie bei der Binärsuche. Und wir müssen einige Bedingungen hinzufügen. Während unser Element x kleiner oder gleich ist, ist
unser Tief größer oder gleich, es tut mir leid, und ist kleiner oder gleich unserem Element. Solange diese Bedingungen erfüllt sind, können
wir hier arbeiten. Wenn wir nun zu einem Punkt kommen, an dem unser Tief gleich unserem hohen Index ist, dann bedeutet dies, dass wir es getan haben, entweder finden wir das Element oder nicht. Also werden wir überprüfen, ob ich das gleiche hinzufüge, da sie gleich sind, ist gleich unserem x und dies ist der Fall Return low, andernfalls gibt minus1 zurück. Und nach der Überprüfung dieser Bedingung, jetzt können wir arbeiten, können unsere Formel die gleiche Position erstellen, die springen wird. Wie wir es bei unserer binären Suche getan
haben, haben wir eine Position namens Metallelement erstellt. Jedes Mal, wenn wir jetzt zum mittleren Element gehen, erstellen
wir eine andere Ganzzahl namens Position. Und die Formel ist wie folgt. Auf diese Weise berechnen wir die Interpolation. Und ein von hohen minus niedrig. Dann multiplizieren wir es mit ich würde x minus eine Last. Und jetzt überprüfen wir, ob ein Strahl an dieser Position unserem Element entspricht, dann geben wir einfach unsere Position zurück. Andernfalls werden wir überprüfen, ob a an dieser Position kleiner ist als unser Element. Dann müssen wir unser Tief von der niedrigen auf die hohe Position plus eins ändern. Das gleiche wie wir es getan haben und in der binären Suche, aber anstelle der Position, haben wir Methode verwendet, sonst wird Position minus eins sein. Also, sonst, wenn die wir an einer Position haben größer als x, dann wäre du gleich Position minus1. Und nachdem wir diese Bedingung und alles,
die while-Schleife beendet haben, können wir minus eins zurückgeben, wenn wir die ganze Zahl nicht finden. Und jetzt gehen wir zurück und benutzen es hier. Also drucke ich Interpolation aus. Wir haben die a und B und x wird die Zahl sein. Nehmen wir zum Beispiel an, für eine Suche nach b. Und lassen Sie uns voran gehen und laufen. Unser Kodex. Wird für SO drei bekommen ist an Position 401234. Dadurch ändern Sie diese Zahl auf 89 und wir bekommen Position 11. 89 ist also an Position 11. Und das letzte, was wir überprüfen werden, ob wir eine Nummer eingeben, die nicht in dieser Lektion ist, 900, bekommen wir minus eins. Also das ist es für die Interpolationssuche. Wir sehen uns im nächsten Video.
25. Exponential: Der letzte Suchalgorithmus, über den wir sprechen werden, ist die exponentielle Suche. Exponentielle Suche umfasst zwei Schritte. Zuerst müssen wir einen Bereich finden, in dem das Element vorhanden ist. Und dann machen wir binäre Suche im Seltsamen. Betrachten wir diese Liste. Wir haben 16 Elemente und wir müssen zum Beispiel 89 finden. Was wir also tun werden, ist zunächst zu
überlegen, ob unsere Zahl gleich dem ersten Element in dieser Liste ist. Wenn dies der Fall ist, dann geben wir 0 zurück, also ist es an Position 0. Andernfalls überprüfen wir alle anderen Elemente. Wir beginnen mit i gleich eins und mit Doublet I gleich zwei, dann i gleich 24816 und so weiter. Und lassen Sie uns voran gehen und umgesetzt, um dies besser zu verstehen. Gehen Sie hier und Sie haben öffentliche statische, und lassen Sie uns es exponentiell nennen. Wie üblich, nehmen Sie ein Array von ganzen Zahlen und, und, und, und den Wert, den wir suchen, wir nennen es x hier. Zunächst müssen
wir, wie gesagt, überprüfen, ob bei Index 0, wenn der Wert bei Index 0 ist, dann geben wir einfach 0 zurück. Andernfalls müssen wir den Bereich für die binäre Suche durch wiederholte Verdoppelung finden. Also definieren wir eine ganze Zahl mit dem Wert eins. Und wir treten in die Schleife ein. Während i kleiner als n ist, die Länge des Arrays. Und fügen Sie ein, i ist kleiner als unsere, kleiner oder gleich unserer Zahl. Diese Schleife wird ausgeführt. Also werden wir einfach i mit zwei multiplizieren. Jedes Mal, wenn wir diese Schleife betreten, multiplizieren
wir i mit zwei. Also lassen Sie uns hier in diesem Beispiel sehen, wann wir diese Schleife beenden können. Zum Beispiel, wenn wir nach der Zahl 13 suchen wollen, überprüfen wir
zunächst, ob 0 gleich 13 ist. Nein, ist es nicht. Dann definieren wir i gleich eins und geben diese Schleife ein. Ich bin gleich eins, wird überprüfen. Während ich bei a, bei i kleiner oder gleich x ist, ist
man kleiner als oder gleich 13. Ja, dann multiplizieren wir i mit. Also, jetzt haben wir ich gleich zwei, und wir gehen zu unserem nächsten Element. Hier haben wir auch eine, es ist weniger als 13 und ich ist weniger als n. dann multiplizieren wir i mit 21 mehr Zeit. Jetzt haben wir zwei Mal 24201234. Nun, hier überprüfen wir, dass die weniger als 13 ist. So können wir noch ein Mal auf vier Mal 28 multiplizieren. Jetzt sind wir 5678, wir sind bei 21. Jetzt. Wir prüfen, ob 21 weniger als 13 ist. Nein, ist es nicht. Dann. Wir verlassen die Schleife mit i gleich acht. Jetzt haben wir ich gleich acht. Und um unser Intervall zu erhalten, haben
wir i gleich acht und i gleich vier, was acht durch zwei geteilt ist. Nachdem wir also unser Intervall hier gefunden
haben, verwenden wir einfach binäre Suche. Und ich arbeite bei einem. Und hier haben wir ich durch zwei geteilt. Dies ist unser Intervall und Minimum zwischen i und eins, i und n. Da es sein könnte, könnte
es sein, dass i größer als n ist und wir nicht außerhalb unserer Grenzen arbeiten können. Und hier haben wir unsere ganze Zahl x. und da wir den Typ zurückgeben müssen, so drehen wir einfach binäre Suche. Und dann sind wir fertig. Gehen wir weiter und benutzen es hier. Also gehen wir voran und drucken exponentiell bei array.length und w. Wir werden suchen, zum Beispiel, 13. Und der Code wird sieben bekommen. 13 ist also an Position sieben. Also machen wir es besser, netter. Und exponentiell. Speichern wir es als exponentiell und als Ganzzahl. Als intimes Ergebnis ist gleich diesem exponentiellen. Wenn das Ergebnis größer als 0 ist, dann drucken wir das Element am Index vorhanden ist. Und wir drucken den Index aus. Andernfalls drucken wir aus, dass das Element nicht vorhanden ist. Und Ray und Clustering wird der Code Element erhalten ist bei Index sieben. Jetzt haben wir eine Verknüpfung in Java, die Sie verwenden können. Anstatt all diese zu schreiben, können
wir einfach eine der beiden Zeilen ausdrucken. Also müssen wir hier die Bedingung festlegen, wenn das Ergebnis kleiner als 0 ist, dies ist der Fall. Wir können ausdrucken. Element ist nicht vorhanden. Und die andere Anweisung wäre Element vorhanden ist, Index. Und wir drucken den Index aus. Also lasst uns voran gehen und sehen, was hier gewesen wäre. Lassen Sie uns den Code ausführen und wir erhalten Element vorhanden ist und Index sieben. Also diese Verknüpfung, Zunächst einmal NDA System.out.print-Methode. Wir legen die Bedingung fest, dass Ihr Ergebnis kleiner als 0 ist. Dann wird automatisch diese Methode die erste Anweisung drucken. Andernfalls wird es drucken, was es nach den beiden Punkten hier gibt. Also fragten wir sie, ob es Akt ist weniger als 0, ja, drucken Sie dies. Sonst. Drucken Sie das aus. Dies ist sehr hilfreich, wenn wir die Dinge nicht komplizieren wollen und wir eine sehr einfache Druckform brauchen. Dies ist also für die Suche nach Algorithmen. Wir sehen uns im nächsten Video.
26. Zusätzliches Problem: Erziehung: Jetzt, da wir mit unserem Material fertig sind, lassen Sie uns weitermachen und einige zusätzliche Probleme lösen. Und du beginnst mit der Vererbung. Wird das Bankkonto erstellen. Also habe ich bereits ein Paket namens BankAccount erstellt. In diesem Paket haben wir unsere Elternklasse, nennen es, Bankkonto. Und wir haben zwei Arten von Konten. Wir haben ein Sparkonto und ein Girokonto. Lassen Sie uns also voran gehen und zwei neue Klassen erstellen. Der erste nennen wir es Überprüfung, und der andere wird Sparkonto sein. Und natürlich müssen wir unsere Hauptmethode erstellen. Dies ist unsere Tauchermethode, und wir erstellen unsere Hauptmethode. Nun, die beiden Klassen, Bankkonto und genau die gleiche Sache verlängert Bankkonto. Gehen wir nun zurück zu unserem Bankkonto und erstellen Sie hier einige Methoden. Zuallererst haben wir eine Variable. Es ist unser Gleichgewicht. Also lassen Sie uns es als geschützt bezeichnen w Und lassen Sie uns einen Konstruktor erstellen. Und dann werden wir unsere Methoden verwenden. Also Kontostand. Und sagen Sie, dass Gleichgewicht zu balancieren. Jaffa erlaubt uns, den gleichen Namen hier zu haben. Und in diesem Fall müssen
wir tun, ist auf diese lokale Variable zu verweisen. müssen wir benutzen. Und jetzt beziehen wir uns auf diese außerhalb und diese Balance ist diejenige im Parameter. Lassen Sie uns jetzt unsere Methode erstellen. Wir haben die Darmbilanz der Öffentlichkeit. Www2 bekommen Balance wird einfach zurückkehren. Eine andere Methode, zum Beispiel, um Leere mit einer bestimmten Zahl zurückzuziehen. Wir würden konkret gehen und diesen Betrag einfach von der Abhängigkeit subtrahieren. Und eine andere Methode, wenn wir einen bestimmten Betrag hinzufügen möchten. Also haben wir einfach zur Balance hinzugefügt. Lassen Sie uns nun an unserem Sparkonto arbeiten. Also in absteigendem Konto haben wir ein Interesse. zunächst Lassen Sie unszunächstunser Konstruktor-Sparkonto erstellen. Und wir haben die Unterstützung von unserer Elternklasse mit unserem Gleichgewicht bekommen. Und um die Interessen hinzuzufügen, müssen
wir eine Rate haben. Also lassen Sie uns ein geschütztes Vinyl und Benennung erstellen. Und wir sagten, die Rate bei 0,04. Jetzt lassen Sie uns unsere Methode zu unseren Interessen, öffentlichen nichtigen Zinsen erstellen, und wird einfach die Methode verwenden, um es in
unserem Bankkonto Einzahlung zu erstellen und unsere Zinsen hinzuzufügen, die Datum mal unser Guthaben ist. Jetzt gehen wir zu unserem Girokonto. Und unser Girokonto. Lassen Sie uns zunächst unseren Konstruktor erstellen und dann über die Methoden sprechen. So in unserem konstruierten, wie Sie leben, öffentliche Überprüfung, Kontostand. Und wir rufen den Super und Buße an. Jedes Mal, wenn wir uns auszahlen oder einen Betrag auf unser Konto hinzufügen, haben
wir einen Feed, den wir bezahlen müssen. Lassen Sie uns also einige ganze Zahlen erstellen, einige Variablen außerhalb. Zu. Die erste ist nur, um zu zählen, wie oft wir unser Konto entweder verwendet haben,
um abzuheben, um einen bestimmten Betrag hinzuzufügen. So geschützt und Abschnittszählung. Die andere ist in erster Linie, wir haben freie Zeiten begann zurückziehen oder fügen Sie einen Betrag kostenlos für zwei Male. Also die ersten beiden Male, ziehen
wir in seiner vollen freien. Lassen Sie uns also unsere endliche Ganzzahl erstellen und nennen Sie sie 32. Und der letzte wird turbulent sein. Und das ist das Feld, das Sie nach dem Passieren der 23 mal bezahlen müssen. Also lassen Sie uns es v gleich 0,25 nennen. Jetzt müssen wir setzen Ich werde die Transaktionsanzahl auf 0 gleich 0 setzen. So verwenden Sie gehen und Einzahlungsmethode. Wir müssen sie außer Kraft setzen. Also hier haben wir unsere Einzahlung und Auszahlung. Also haben sie bereits die Superpunktbreite Zeile genannt. Wir brauchen diese Schritte hier nicht zu tun. Wir müssen nur den Überblick über unsere Transaktionszählung behalten. Jedes Mal, wenn wir diese Methode eingeben, erhöhen
wir nur die Transaktionsanzahl um eins. Und das Gleiche hier. Nun, das sind unsere Methode und die letzte Methode, die wir erstellen werden, ist die Methode, die Gebühren abzuziehen. Also lassen Sie es uns nennen. Und diese Methode wird einfach überprüfen, ob die Transaktionsanzahl größer als zwei ist. Dann müssen wir ein paar Gebühren hinzufügen. Andernfalls setzen wir einfach den Zähler zurück. Wir legen die Transaktionsgebühr fest, die Transaktionsanzahl auf 0. Transaction Downtown ist größer als Antigen draußen, wir nennen es drei ist größer als drei. Dann sollten wir das W bekommen nennen
wir es. Gebühr. Und es wäre gleich Transaktion 23 mal. Und multipliziert mit V. Wir nannten es draußen. Nehmen wir an, hier haben wir Direktinvestitionen. Nun, nachdem diese Variable erhalten wurde, wird sie einfach von L. zurückziehen also sind das unsere Methode. Lassen Sie uns nun zwei String-Methode für unsere Bankkontoklasse erstellen. Hier. Wir haben öffentlichen String ToString und wir werden einfach mit Turn-Balance drucken. Unser Gleichgewicht ist unser Gleichgewicht. In unserem Girokonto. Wir rufen an, wir rufen super an. Also lassen Sie uns eine Zeichenfolge erstellen und es Ergebnis nennen, das unsere Stärke speichert. Und dann eine Linie und drucken Sie unsere Zählungen aus. Also hier können wir
unsere Transaktionszählung hinzufügen und einfach das Ergebnis jetzt und unser Sparkonto zurückgeben. Lassen Sie uns die toString-Methode überschreiben. Also müssten wir es außer Kraft setzen. Und die Zeichenfolge wäre gleich Superpunkt toString. Und Fügen Sie zu diesem Ergebnis hinzu, richten Sie das Ergebnis aus und geben Sie es zurück. Und dann gehen wir zu unserer Hauptmethode und erstellen ein Girokonto und Sparkonto. Girokonto, lassen Sie es uns nennen, sehen Sie es. Gewalt könnte 1000 sein. Und Sparkonto S gleich neuen Einsparungen zu verbannen wäre 10 Tausend. Lassen Sie uns einige der Methoden verwenden. Also c Punkt mit Joe würde 150 gehen. Und dann dieses Wort, ohne Konto als Punkt mit TO 2003 zu speichern. Danach. Lassen Sie uns als verwenden. Dann gehen Sie weiter und drucken Sie das Girokonto mit unserem C. aus und
drucken wir die Schlange aus. Dann das Konto speichern. Und wir drucken s mit einer Linie aus. Und dann verwenden wir unsere Methode und sehen, sehen, abziehen und drucken sie noch einmal aus. Und lassen Sie uns voran und führen Sie ein Girokontoguthaben durch, Kontoguthaben mit Zählrate
sparen. Und Sie können sehen, dass das Gleichgewicht hier gleich ist, da, obwohl wir Daten verwenden, aber die Anzahl gleich zwei ist. Also lassen Sie uns und die Methode noch einmal verwenden. Zum Beispiel C, hinterlegen Sie alle Beträge, zum Beispiel 20. Und wir werden sehen, dass, obwohl wir einzahlen und wir hinzugefügt 20, unsere Vanessa ist jetzt eine 169.735, wir abgezogen 0.250 p. Also das ist es für dieses Beispiel, um Sie in der nächsten.
27. Fibonacci-Sequenz: Jetzt werden wir über Fibonacci-Sequenz sprechen und es mit drei Methoden lösen. Zunächst einmal ist die Fibonacci-Sequenz die Zahlenreihe, in der die nächste Zahl gefunden wird, indem die beiden davor liegenden Zahlen addiert werden. Also lass mich voran gehen und es hier schreiben. Die ersten beiden Zahlen sind 01, dann fügen wir 0 plus 111 plus 121232 plus 35 und so weiter, 8132134 und so weiter. Das ist also die Idee dieser Sequenz. Lassen Sie uns nun voran und lösen Sie es rekursiv, iterativ und mit der Big Integer-Klasse. Wir werden später über die Big Integer-Klasse sprechen. Also zuerst, lassen Sie es iterativ lösen. Lassen Sie uns also eine Methode erstellen, private statische, die zum Beispiel vorbestimmt ist. Und lassen Sie uns es nennen, fühlte IT. Das wird eine ganze Zahl und die Position nehmen. Und was wir zurückgeben sollten, ist die Nummer an der angegebenen Position. Wenn wir zum Beispiel fünf eingegeben haben, sollten
wir 01235 zurückgeben, wir sollten drei zurückgeben. Wenn wir sieben eingeben, sollten
wir acht zurückgeben und so weiter. Nun, wie gesagt,
lassen Sie uns zunächst eine Ganzzahl erstellen und ihr einen Wert geben. Und der Wert bei 100. Und wir müssen das vorherige Element hinzufügen ist gleich 0 auf den ersten, h gleich eins, und die vorherige vorherige, vorherige, vorherige xi ist gleich 0. Jetzt erstellen wir eine for-Schleife mit, wir beginnen mit i gleich zwei und kleiner als oder gleich n. Und jetzt,
jedes Mal, wenn wir diese Schleife betreten, fügen
wir der Lösung vorherige, vorherige, vorherige. Jetzt müssen wir unsere beiden Werte hier ändern. So vorherige wird den Wert der vorherigen, vorherigen, vorherigen, vorherigen, vorherigen. Vorherige wird mit dem Wert der Lösung haben. Jetzt geben wir diese Zahl einfach nach der for-Schleife zurück. Lassen Sie uns also voran und erstellen Sie unsere Hauptmethode. Hier. Wir haben unsere Hauptmethode und verwenden dies. So drucken wir Fibonacci iterativ Dauer aus. Und wir drucken den ICTY einfach mit dem Wert aus. Und lasst uns den Benutzer bitten, den Wert einzugeben. Scanner scannen, scannen. Bitte geben Sie eine Zahl ein, und wir speichern diese Nummer als nächstes n. und wir geben sie hier als Parameter an. Nun, wenn wir voran gehen und diesen Code ausführen, erhalten, geben Sie bitte eine Nummer ein. Angenommen, wir geben fünf ein, erhalten die Fibonacci-Iteration 568 und so weiter. Und zum Beispiel bekommen wir 55. Jetzt verwenden wir Rekursion. Also lassen Sie uns voran und erstellen Sie eine andere Methode, Methode, private Karen, um ihm einen Wert zu geben. Und wie gesagt, wir müssen unseren Basisfall erstellen. Basisfall, wenn n gleich eins oder 0 ist, sollten wir enden. Andernfalls sollten wir
Fibonacci-Rekursion von n
minus eins plus Fibonacci-Rekursion von N minus zwei zurückgeben Fibonacci-Rekursion von n . Also die letzten beiden Elemente. Und gehen wir weiter und führen Sie diesen Code aus. Verwenden Sie es in unserer Hauptmethode. Also drucken wir den Nazi aus. Weil Plus. Und führen Sie diesen Code aus. Wir erhalten eine Zahl, zum Beispiel Sex, Fibonacci-Iterationshilfe, und das gleiche Ergebnis, wie wir die Rekursionsmethode verwenden. Nun wird die letzte Methode als große Ganzzahl verwendet. Also werden wir Big Integer-Klasse verwenden. Daher wird diese Klasse im Allgemeinen für mathematische Operationen verwendet, die
sehr große ganzzahlige Berechnungen beinhaltet , die außerhalb der Grenze aller verfügbaren primitiven Datentypen liegen. Beispielsweise enthält die Faktorial einer 100 158 Ziffern. So können wir es in jedem primitiven Datentyp speichern zur Verfügung. Wir können es und diese große Ganzzahl speichern und die Methoden und diskrete Ganzzahl plus verwenden. Also jetzt lassen Sie uns unsere Methode mit MC Integer erstellen wird eine private statische mit dem Wert von quick integer sein. Normalerweise geben wir gehörte oder Integer oder String zurück und geben
jetzt Big Integer zurück und nur Name. Und der Wert von n. wie üblich. Nun, das gleiche würde ich dasselbe tun, wie wir es in unserer Iterationsmethode getan haben. So. Zuallererst müssen wir die Lösung speichern. Der Wert der großen Ganzzahl, lassen Sie uns es nennen. Lösung gleich großer ganzzahliger Punkt 0. So speichern wir also 0. Und die Lösung. Wir sagen nicht Big Integer-Lösung, Lösung gleich 0. Wir sagen große ganze Zahlen. Nun, das Gleiche für vorherige, vorherige, vorherige. So große ganze Zahl, vorherige gleich große ganze Zahl. Aber eins und Big Integer vorherige, vorherige, große ganze Zahl, 0. Jetzt beginnen wir mit unserer for-Schleife und wir beginnen mit zwei und enden mit n gleich n.
Und die Lösung wird vorheriger, vorheriger, vorheriger, vorheriger, vorheriger, vorheriger, vorheriger. Und dann vorherige jetzt wäre gleich unserer vorherigen und vorherigen Lösung. Und dann werden wir einfach Lösung zurückgeben. Das ist es also. Und jetzt lassen Sie uns System.out.Print Integer-Parameternummer ausdrucken. Lassen Sie uns den Code ausführen. Und wir kriegen 556, wir bekommen acht. Jetzt zum Beispiel, wenn wir eine große Anzahl wie 10 Tausend verwenden, können
wir das sehen, weil es einige Zeit dauern wird. Und wenn wir verwenden eine 100 Tausend zugeben, dass es einen Fehler erzeugt. Wenn wir jedoch nur diese Big Integer-Klasse verwenden, und lassen Sie uns diese Zahl eingeben. Sie können sehen, dass 20 Tote diese Sequenz. Und es ist ein sehr großes, Nicht wirklich, nicht in der Lage sein, es in jedem primitiven Datentyp zu speichern. Deshalb verwenden wir die Big Integer-Klasse. Nun, das ist es für die Fibonacci-Sequenz. Wir benutzten drei Methoden und lernten eine neue Klasse über eine neue Klasse, die Big Integer-Klasse.
28. Big Integer: Lassen Sie uns nun über Big Integer-Klasse sprechen. Wir haben bereits darüber gesprochen und Fibonacci, aber er wird es mehr explodieren. So ist diese Klasse für uns in Java zur Mathematik-Klasse verfügbar. Und vor allem, lassen Sie uns unsere große ganze Zahl erstellen, erfasst diese Lieblings Big Integer eins gleich eins. Also jetzt geben wir diesem Objekt einen Wert von 1. Zunächst einmal berechnen wir zum Beispiel die Faktorial des Codes. Also lassen Sie es uns benennen. Und wir erstellen unsere for-Schleife zwei, den Start von 12 bis. Und jedes Mal, wenn wir diese for-Schleife durchlaufen, multiplizieren
wir zwei große ganze Zahl. Wir haben eine Methode, große ganze Zahl Punkt multiplizieren und multiplizieren sie mit großen ganzzahligen Wert von i. Und dann gehen wir weiter und drucken die Fläche von plus große ganze Zahl aus. Führen Sie den Code aus. Sie erhalten faktorial von 24. Lassen Sie uns jetzt andere Methoden verwenden. Das haben wir. Lassen Sie uns zum Beispiel ein anderes Objekt erstellen, Big Integer, big integer, zwei. Neue große Ganzzahl mit dem Wert eines 197. Nun, lassen Sie uns es bestätigte Methode verwenden und das Minimum zwischen den beiden Objekten erhalten. Also lassen Sie uns drucken ich denke, die große T2. Und jetzt bekommen wir das Minimum zwischen den beiden Werten. Wir kriegen 24. Und wenn wir die Macs große Ganzzahl verwenden, Integer, um eine 197 zu erhalten. Nun, zum Beispiel, wenn wir wollen, um die nächste Primzahl größer als 197. Daher können wir diese Methode verwenden. Also lassen Sie uns die nächste Primzahl ausdrucken. Neben einem 197 ist, und verwenden Sie großes Institut, um die nächste wahrscheinlich prime. Und wir bekommen die nächste Prime und es ist ein 199. Jetzt haben wir immer noch viele Methoden und wir verwenden einige von ihnen. Zum Beispiel haben wir die Anzeige. Also, wenn wir große ganze Zahlen sagen, die ganze Zahl zwei, und starten wir es in großen ganzzahligen Namen. Nennen Sie es Ausgabe gleich diesem, und dann drucken Ausgabe wird zu einem 121 zu bekommen. Also die Rest-Methode werden wir die ToString verwenden. Diese Methode wird also die Dezimalzeichenfolgendarstellung der großen Ganzzahl zurückgeben. So können wir es in einer Schnur speichern. Nennen wir es gleich Ganzzahl, eins zu String. Und so haben wir bereits n hier, so müssen wir eine Nummer Cruncher Name wählen, Vorlagenname. Nun, wenn wir den Namen ausdrucken, erhalten 24 und den Namen Punkt charAt 0, zum Beispiel, wird auch bekommen. Also haben wir diese große Ganzzahl in eine Zeichenfolge konvertiert und jetzt können wir ihre Zeichen manipulieren. Also das ist es für die Big Integer-Klasse. Wir verwenden es nicht so sehr, wenn es um kleine ganze Zahlen geht. Und wir haben immer noch viele Methoden. Sie sind so nützlich und wir können sie in unserem Code verwenden. So können Sie sie auf eigene Faust erkunden. Und jetzt sehen wir uns im nächsten Video.
29. Zusätzliche Probleme: Nun gehen wir weiter und lösen einige Probleme mit Rekursion. Das erste Problem, das wir lösen werden, ist, alte Xs und eine Zeichenfolge zu ändern, die
zu klug ist, um zu berücksichtigen. Wir haben einen Beispielcode X. Dann müssen wir es ändern, um von der gleichen Sache geschuldet. Zum Beispiel, x x x x. Wir müssen es zu y,
y i durch Licht ändern . Und würde es nicht tun, ohne Schleifen zu verwenden. Lassen Sie uns also unsere Methode erstellen, öffentliche statische. Und es sollte sie drehen bleiben diesen Namen, ändern x, y, und es wird eine Stellung nehmen. Das ist jetzt müssen wir durch die Tiere gehen,
die Charaktere in der Schnur. Und zuerst müssen
wir überprüfen, ob dieses Ding, unser Basisfall ist, wenn die Zeichenfolge die Länge 0 hat, dann sind wir fertig. Wir haben keinen Charakter. Also überprüfen wir SDR diese Länge. Wenn SDR diese Zeit gleich 0 ist, dann geben wir einfach eine leere Zeichenfolge zurück. Sonst müssen wir arbeiten. Nun, das erste, was wir tun müssen, ist zu überprüfen, ob das erste Zeichen in unserer Zeichenfolge x ist. Wenn dies der Fall ist. Wenn SDR bei z ist gleich x, dann müssen wir etwas tun. Und wir müssen X zurückgeben und in y umgewandelt also sollten wir y plus zurückgeben. Jetzt, nachdem wir ohne ersten Charakter beendet
haben, müssen wir dasselbe für den Rest der Charaktere tun. Nun, in diesem Beispiel, sagen wir, wir haben x, x x x.
Also, was wir hier tun sollten, ist, dies mit x zu vergleichen. Wenn dies der Fall ist, dann müssen wir es in i konvertieren. Jetzt haben wir Y und etwas. Jetzt, nachdem wir mit dem ersten Zeichen fertig
sind, müssen wir dasselbe mit den restlichen Charakteren tun. Also müssen wir diese Methode noch einmal eingeben und prüfen, ob dieses Zeichen X ist. Jetzt müssen wir es konvertieren, also lassen wir die Rekursion es tun. Wir nennen es einfach die Methode selbst mit einer neuen Zeichenfolge, die Teilzeichenfolge von eins bis zum Ende der Zeichenfolge ist. Nun, wenn wir zu dem Punkt kommen, wo wir nur ein Element in der Zeichenfolge haben, dann wird dies einen Fehler erzeugen. Denn wenn die Zeichenfolge nur ein Element,
ein Zeichen hat , und wir sagen, dass wir alle Elemente nach dem ersten Zeichen benötigen. Um damit umzugehen, müssen
wir die Bedingung STR setzen, diese Länge ist gleich eins. Dann sollten wir einfach zurückkehren. Warum? Andernfalls sollten wir noch einmal y plus Quota Methode zurückgeben. Nun, dies ist für Standarddiagramm bei 0 gleich x. Andernfalls müssen wir eine andere Aufgabe zu tun. Also, wenn SDR Punktlänge gleich eins ist, wir einfach STR bei 0 zurück. Andernfalls geben wir stdio.h I zurück, die die Methode noch einmal zitieren. Und ja, diese Teilzeichenfolge, Teilzeichenfolge von einem Ende der Zeichenfolge. Und jetzt müssen wir es in eine Zeichenfolge konvertieren. Also fügen wir einfach String hier hinzu. Und jetzt sind wir mit dieser Methode fertig. Lassen Sie uns voran und verwenden Sie es in unserer Hauptmethode. Dies ist unsere Hauptmethode. Und lasst uns den Benutzer bitten, uns die Zeichenfolge zur Verfügung zu stellen, bitte und gespeichert. Eine Zeichenfolge namens name. Verwenden Sie dann diese Methode und drucken Sie das Ergebnis aus. Also ändere x, y mit unserem Namen. Lassen Sie uns den Code in eine Zeichenfolge ausführen. Zum Beispiel, x x x x, y, y, y, y. Und wenn wir kein x haben, hier, zum Beispiel, werden wir hoch. Gehen wir nun zu einem anderen einfachen Beispiel über. Die vorberechnete, die Macht von n. Zum Beispiel, wenn wir 32 haben, dann ist dies, wie wir sagen, dass wir brauchen, dass wir t auf die Macht von zwei über drei bis zur Macht von 45 und so weiter wollen. Es ist also sehr unkompliziert. Lassen Sie uns unsere Methode erstellen. Und es wird einen Lehrer zurückgeben, um zwei ganze Zahlen zu nehmen, und, und. Und. Und ich würde den Fall stützen, wenn n gleich und 0 ist, dann geben Sie einfach eins zurück. Andernfalls sollten wir unsere Basis
mal unsere Basis mit einem Minus1 zurückgeben , da wir die Basis multiplizieren. Und gehen wir weiter und benutzen es hier. Betrachten wir zum Beispiel n gleich fünf und n gleich drei. Und drucken Sie mit Basis. Und dann lassen Sie uns den Code ausführen. Und wir kriegen, du bekommst eine 125. Gehen wir nun zu einem anderen Beispiel. Und in diesem Beispiel werden wir ganze Zahlen oder ein Array von Ganzzahlen verwenden. Nehmen wir an, wir haben diese Liste, eins bis 20. Also hier haben wir zwei und dann gefolgt von 20, das ist zwei mal zehn. Und lassen Sie uns ein anderes Beispiel nehmen, 14315 und essen das Gleiche. Wir haben drei mit zehn multipliziert, bekommen wir. Also drei wird von 13 gefolgt. Nun sollte unser Code true zurückgeben, wenn wir zwei Elemente
haben und wenn wir das erste mit zehn multiplizieren, dann erhalten wir das zweite. Also hier kehren wir hier wahr zurück. Und zum Beispiel sollte 12345 zurückkehren. Lass uns weitermachen und unseren Code schreiben. Public Static sollte einen booleschen Wert zurückgeben. Und nennen wir es. Zum Beispiel mehrere. Und es wird einen Wert nehmen. Ganzzahlen haben ein Limit bei a und der Zahl. Und diese Zahl ist der Index, den wir den Pass durch unser Array verwenden werden. Und jetzt fangen wir an. Also zuerst, wenn dann dx gleich der array.length minus1 ist, haben wir das ganze Array übergeben und wir haben keine zwei Elemente
gefunden, die unserer Bedingung entsprechen. Und in diesem Fall sollten
wir falsch zurückgeben. Das ist also unser Basisfall. Sonst sollten wir arbeiten. Nun, wenn Index weniger als einen Tag ist, Länge minus eins, dann können wir arbeiten. In diesem Fall werden wir überprüfen, dass, wenn Array bei Index Zeitstempel gleich Array bei Index plus eins ist, dann sollten wir true zurückgeben. Andernfalls müssen wir die gleiche Methode erneut mit aufrufen und den Index inkrementieren. So mehrere hatten einen und Index plus eins. Nun, das ist nicht der Fall, dann kehren wir einfach zurück. Also mal sehen, was wir hier in diesem Fall getan haben. Zuallererst erhalten wir zum Beispiel dieses Array. Und zuerst wird es 0 sein. Also n dx ist nicht gleich dieser Länge minus eins. Also geben wir diesen Block ein und hier werden wir überprüfen, ob Index kleiner ist als array.length eins ist. Das ist der Fall. Dann sollten wir überprüfen, ob Array-Index mal zehn. Also, wenn ein mal zehn gleich zehn gleich vier ist, nein, dann sollten wir die Methode noch einmal aufrufen. Und jetzt wird unser Index um eins erhöht. Also hier wäre unser Index vier und dann, der auch viermal zehn gleich drei ist. Nun, als unser Index wird an der Position sein, an dieser Position. Und wir machen das Gleiche. Dreimal zehn ist gleich 30. Jetzt ist unser Zustand erfüllt. Dann müssen wir diese Methode nicht noch einmal durchführen. Also werden wir einfach wahr zurückkehren. Nun, in diesem Fall, zum Beispiel, wenn wir diese Liste verwenden, dann finden wir keine, dann jedes Element, das unserer Bedingung hier entspricht. Also werden wir einfach weiterhin die gleiche Methode eingeben, bis der Index sein wird, wird
schließlich bei array.length minus1 sein und wir werden false zurückgeben. Das ist also unsere Methode und lassen Sie uns voran gehen und es in unserer Hauptmethode verwenden. Also lassen Sie mich diese einfach kommentieren. Und lassen Sie uns mehrere drucken und erstellen Sie einen gleich, zum Beispiel, 12355310. Und in diesem Fall wird
das diese Methode mit diesem bei a und 0 verwendet. Mal sehen, was passieren wird. Wird wahr werden. Jetzt, wenn wir löschen 15 wird Flows erhalten. Das ist es also. Einige einfache Beispiele zur Rekursion. Wir sehen uns im nächsten Video.
30. Sortierung von Strings: Jetzt gehen wir zurück zu unseren Sortieralgorithmen. Die Kuriosität versuchte sie mit Arrays von Ganzzahlen. Jetzt werden wir Arrays von Strings verwenden. Also hier, eine Hauptmethode. Lassen Sie uns ein Array von Strings erstellen. Skalieren Sie es Namen, und es wäre gleich einigen Namen. Zum Beispiel Alix, und drücken Sie. Das ist also, dass ich auflisten würde. Gehen wir nun weiter und verwenden Sie die Einfügung. Also lassen Sie uns es öffentlich nennen statisch, void, Einfügen von Arrays, Arrays von Strings, genannt sie Namen. Es ist also das gleiche wie für ganze Zahlen mit einer Variation. Also beginnen wir mit unserer for-Schleife bei i gleich eins. Und wir müssen definieren, unsere Stärke ist gleich Namen bei i und j wäre gleich i minus eins. Jetzt wird unsere while-Schleife eingeben. Während j größer oder gleich 0 ist. Und wir werden eine Methode verwenden, die für uns zur Verfügung steht. Und es ist String-Klasse in Java. Dies zerlegt zu, werden wir den Schlüssel mit einer anderen Zeichenfolge vergleichen. In diesem Fall wurde es bei j benannt. Wenn es kleiner als 0 ist, dann müssen wir sie austauschen. Wir müssen eine Zeichenfolge erstellen, die wie üblich bezeichnet wird, geben Sie ihm den Wert von Namen, Namen von j plus eins, und Namen von j plus eins. Wir nehmen den Wert der Dämpfung. Jetzt. Das ist also unsere Methode und lassen Sie uns voran gehen und es in unserer Hauptmethode verwenden. Und suchen und mit Namen. Und dann die for-Schleife, um unsere Elemente zu drucken. Wir drucken zielgerichteten Plusraum. Wir holen Alex, Chris
und James, damit sie jetzt sortiert sind. So haben wir verwendet, im Vergleich zu dieser Methode ist in der String-Klasse verfügbar. Und das benutzen wir. Wir haben hier die gleiche Methode. Aber anstatt mit diesem Zeichen zu vergleichen,
haben wir die Vergleichsmethode in der String-Klasse und Java verwendet. Lassen Sie uns nun die Auswahl sortieren. Also lassen Sie uns voran und kopieren Sie es, ohne es noch einmal zu schreiben. Auswahl sortieren, und wir werden es hier ändern. Also lasst uns weitermachen und es modifizieren. Jetzt. Du nimmst Kraft. Und hier setzen wir Minimum ist gleich ich will. Ok? Und wenn wir die Methode CompareTo verwenden müssen, sind die beiden Strings. Und schließlich haben wir ein String-Array, das im Vergleich zu Homosexuell und Minimum kleiner als 0 sein sollte. Und dann sind wir fertig. Gehen wir zurück und benutzen es. Anstatt die Einfügung zu verwenden, lassen Sie uns die Einfügung sortieren. Und könnte Auswahl durchführen sind Namen und drucken Sie sie aus. Jetzt haben wir bereits Namen sortiert, also lassen Sie
uns einen anderen bei einem erstellen . Zwei werden gleich Namen sein und verwenden Sie es hier. Auswahl so, dass hier. Gehen wir weiter und drucken sie aus. Wir kriegen, wir müssen hier nur eine Zeile drucken. Und der Code noch einmal, um Einfügung zu erhalten. Also es, das ist unsere Ausgabe und Auswahl, so dass es die gleiche Ausgabe erhalten würde. Das ist also,
dieses Video ist nur, um Ihnen zu zeigen, dass Sie
diese Sortieralgorithmen nicht nur für ganze Zahlen, sondern für Stärke verwenden können . Und Sie können sie auch für Charaktere verwenden. So können Sie voran gehen und ziehen Sie mit Zeichen anstelle von Strings oder Ganzzahlen. Und nicht nur die Sortiertechnik, sondern Sie können auch die Suchalgorithmen mit
Strings und Zeichen verwenden , um dies ist es zum Sortieren und Suchen von Algorithmen? Wir sehen uns im nächsten Video.
31. XML: Hallo und willkommen zurück. Und in diesem Video werden wir über XML sprechen und wie man Daten aus XML mit Java extrahiert. Nun, bevor wir das tun, werden
wir über XML im Allgemeinen sprechen. Wir werden nicht so sehr ins Detail geraten. Wir müssen jedoch wissen, was XML ist und wie wir es verwenden können. Also vor allem steht XML für Extensible Markup Sprache. Dies bedeutet, dass es Computersprache ist, die Markup
verwendet und erweitert werden kann. Also, was ist Markup? Markup sind die Notationen und Symbole, die verwendet werden, um Text zu korrigieren und anzugeben, wie Steuer angezeigt werden soll. Zum Beispiel, wenn wir die Symbole verwenden, die Schließung. Und so sind diese Symbole die Markup-Symbole. Jetzt, erweiterbar bedeutet, dass es in der Lage ist, gestreckt oder erweitert zu werden. Also in der Informationstechnologie, erweiterbar beschreibt Programm auf Programmiersprache, die so konzipiert
ist, dass Benutzer und Entwickler erweitern können, um seine Fähigkeiten
hinzufügen. In dieser XML-Sprache können
wir also unsere eigenen Tags erstellen. Es sind keine vordefinierten Tags darin enthalten. Und lassen Sie uns nur ein Beispiel über dieses XML sehen. Und dies ist ein Beispiel, wie Sie sehen können, können
wir es lesen und wir können die Informationen verstehen, die wir hier haben. Zunächst einmal haben wir ein Unternehmen, und in diesem Unternehmen haben wir Mitarbeiter und einen anderen Mitarbeiter. Wie wir sehen können, haben wir eine ID für die ersten hundert zehnhundert einhundert und für die zweiten zwölftausend. Nun, im Notensystem haben Sie einige Informationen über die Dispersion. Also haben wir den Vorname, Nachname, Spitzname und Gehalt. Und das Gleiche für das zweite Mitglied. Und lassen Sie uns über die Syntax von XML sprechen. Nehmen wir zum Beispiel dieses Beispiel. Also haben wir diese erste, Vorname und wir haben niedrig. Wie wir hier sehen können, haben wir zwei Tags, das Start-Tag und den Angriff. Also, wann immer wir schreiben wollen, wird
das Antilog einfach dieses Zeichen hier hinzufügen. Und innerhalb von Tags können wir einfach unseren Text schreiben. Nun, dieses Ding wird ein Element genannt. Dies ist also ein Element unseres Codes oder unseres Textes. Jetzt unterscheidet xml die Groß- und Kleinschreibung. Also, wenn wir ein Start-Tag schreiben, müssen
wir den n-Typ fahren, genau
das gleiche. So können wir einfach hier Großbuchstaben F schreiben. Dies wird nicht funktionieren, da XML wie Java ist, Groß- und Kleinschreibung beachtet. Jetzt gilt das Gleiche hier, liegt hier, damit wir es versuchen können. Das Großbuchstabe F, Vorname hier und gefolgt von Vorname. So können wir sehen, dass wir es haben. Und so muss der Elementtyp Vorname durch das übereinstimmende End-Tag beendet werden. Wie Sie sehen können. Es ist also ein sensibles und es ist wichtig , sich daran zu erinnern, da unser Code davon abhängt. Nun, eine andere Sache ist, dass Elemente nicht überlappen sollten. Also nehmen wir an, ich habe FirstName und lass mich das einfach kopieren und es hier einfügen. Und bewegen Sie das bis zum Ende. Wie Sie sehen können, wird es einen Fehler erzeugen, der besagt, dass der Elementtyp lastName durch den übereinstimmenden Endtag Nachname beendet werden muss. Wie Sie hier sehen können, haben wir
hier Nachnamen und der Nachname Endtag ist nach dem Vorname. So überprüft XML, ob dieses Tag mit diesem übereinstimmt, alles ist gut. In diesem Fall ist
Nachname jedoch nicht so, es ist nicht der Vorname. Und um einen Fehler zu generieren. Wenn ich aber nur hier ansässig bin, wird
nichts passieren, da alles in Ordnung ist. Wir haben den Nachnamen, und dies entspricht dem öffnenden Tag oder dem Start-Tag, und wir haben den Vornamen hier. Jetzt lass mich sie einfach wie zuvor zurückschieben. Und gehen wir zur Struktur der Elemente in XML-Dokumenten über. Zunächst einmal haben wir das Unternehmen und in diesem Unternehmen haben wir Mitarbeiter. Und wir können diese Firma das übergeordnete Element nennen, und das Personal ist das Kind. Nun, eine andere Sache ist die Deklaration, und diese Deklaration ist optional und gibt die Anzahl der verwendeten XML-Versionen an. Und in diesem Fall ist das divergent 1,00. Und wann immer wir diese Deklaration verwenden, muss
sie ganz oben sein. Nicht einmal Leerzeichen oder Befehl sollten davor sein. So können wir einfach ein wenig Leerraum hinzufügen. Hier sind einige Kommentare hier. Wir müssen es hinzufügen. Die erste Zeile in unserem Dokument. Und bei dieser Deklaration wird auch zwischen Groß- und Kleinschreibung unterschieden, so dass es XML-Großbuchstaben ausprobieren kann, wie Sie sehen können. Gehen wir nun zu Attributen über. Und ein Attribut gibt eine einzelne Eigenschaft für ein Element an. Und es besteht aus einem Namen und einem Wert, der durch ein Gleichheitszeichen getrennt ist. Wie wir hier sehen können, haben
wir unser Mitarbeiterelement. Und im Personal haben wir einige Elemente hier, und das sind das Kind. Wir können jedoch sehen, dass wir eine ID haben, und diese ID ist ein Attribut von Sachen. Wie wir sehen können, diese ID, dies ist der Attributname, und diese 101 ist der Attributwert. Und es wird nur innerhalb des Start-Tags beibehalten. Und wie Sie sehen können, ist
es nach dem Namen ohne Komma oder Leerzeichen oder Semi, Semikolon, so weiter. Also haben wir diesen Namen gleich und Devalue gefolgt. Danach. Dann schließen wir unser Startup. Jetzt haben wir vielleicht mehr als ein Attribut, aber wir können nicht zwei Werte für ein Attribut am gleichen Anfang haben. Also nochmal, sag 10000 plus etwas. Das ist falsch. Wir können jedoch zwei Attribute haben. Nehmen wir an, ich habe eine Nummer, und in diesem Fall ist diese Zahl drei. Lassen Sie mich es einfach schreiben. Und wie Sie hier sehen können, gibt es keinen Fehler und es funktioniert gut. Das ist also im Grunde, dies ist eine allgemeine Idee über XML, wie wir Daten aus diesen Dokumenten lesen können. Und im nächsten Video werden
wir unsere Klasse, unser Programm, erstellen , damit wir diese Daten mit Java extrahieren können. Aber das ist das Ende dieses Videos und wir sehen uns im nächsten.
32. Lokales XML: Und gehen wir zurück zu unserem lokalen Prozess. Und das ist unser Java-Programm hier werden wir unser Programm schreiben. Also zuerst müssen
wir unsere Hauptmethode erstellen. Und natürlich werden wir alle Ausnahmen werfen, die hier auftreten könnten. Und lasst uns einfach, wir können. Also zuerst müssen wir diese Akte nehmen. Dies ist also besetzt Punkt XML und es wird hier gespeichert, wie wir sehen können. Nun, das erste, was wir tun werden, ist, eine Datei zu erstellen und diese Datei, nennen Sie es Datei und New File Mitarbeiter, dass XML. Jetzt ist unsere Akte hier. Natürlich müssen wir es importieren. Und wie zuvor importieren wir einfach java.io dot-Datei. Jetzt, da wir unsere Datei Mitarbeiter dot xml, wie wir Daten daraus extrahieren können. Also beginnen wir mit etwas, das Dokument genannt wird. Und wenn ich es einfach vermieden habe, ist
es in Java-Acts, dass XML-Parser packen. Und dies definiert eine Factory-API, die es Anwendungen ermöglicht,
einen Parser zu erhalten , der DOM-Objektbäume aus XML-Dokumenten erzeugt. Also müssen wir Daten aus dem Maximum extrahieren. Wir werden dieses Dokument verwenden, eine Fabrik bauen. Und jetzt, da wir importiert haben, lassen Sie mich es einfach DVF nennen. Und wenn ich es noch einmal schreibe, Factory. Und lassen Sie mich sehen, welche Methoden für uns verfügbar sind. Wir haben die neue Instanzmethode. Und wie wir sehen können,
ist diese neue Instanz eine statische Methode, die eine neue Factory-Instanz erstellt. Und diese Methode verwendet Folgendes. Wir können sehen, dass es Document Builder Factory und Java verwendet, dass XML-Parser, dass Document Builder Factory. Und wir verwenden einfach diese Methode. Und jetzt haben wir unsere DVF-Ziele. Es ist in der Fabrik dokumentiert. Nun, lassen Sie mich einfach dieses DBF verwenden und sehen, was ist, was sind die Methoden hier. Und wie wir sehen können, wenn wir nach unten scrollen, können
wir sehen, dass wir so viele Methoden haben. Wir sind jedoch an diesem neuen Document Builder interessiert. Und dieser neue Document Builder erstellt eine neue Instanz unserer Document Builder Factory. Jetzt lass es mich einfach benutzen. Und hier werde ich Document Builder definieren. Natürlich werde ich es importieren. So wird es aus Java X Dot
XML Dot Parsern wie die Document Builder Factory importiert und lassen Sie mich es benennen. Db wird gleich sein. Jetzt. Nach der Erstellung dieses Dokuments wird Factory und Document Builder. Ich werde unsere Datei und dieses Dokument übergeben, so Dokument, dass wir in Dokument d benennen und in diesem Dokument werden wir Db Punkt verwenden. Wie Sie sehen können, haben wir auch so viele Methoden. Wir sind an diesem Bus interessiert. Und wie Sie sehen können, Bias, analysiert
es den Inhalt der angegebenen Datei als XML-Dokument. Das ist also, was wir tun werden. Wir werden unsere Akte versperren. Und schließlich haben wir unsere Datei analysiert. Und natürlich werden wir es importieren. Und wir werden es aus Org Dot 3, WC dot dm importieren. Und jetzt sind wir fertig mit der Übergabe unserer Akte. Wir haben alle Daten und dieses D-Dokument. Gehen wir zurück zu unserem Dokument und wir werden feststellen, dass wir Mitarbeiter haben. Also interessieren wir uns für Mitarbeiter hier, Zeug eins und so. Also lassen Sie mich hier zurück. Und wenn ich d dot hinzufüge, können
wir sehen, dass wir einige Methoden haben. Wenn wir jedoch die Elemente dieser Dokumente nehmen möchten, können
wir einfach die get-Elemente nach Tag-Namen verwenden. Und in diesem Fall können
wir diese Methode verwenden, getElementsByTagName. Und wir können den Namen des Personals angeben. Und natürlich können wir es in einer geordneten Liste speichern. Lassen Sie mich einfach unsere Knotenliste erstellen. Und natürlich, importiert von AHRQ Punkt W3C Punkt nach unten. Und lassen Sie mich es Personalliste nennen. Jetzt haben wir unsere Mitarbeiterliste. Wir haben die Mitarbeiter Zeug eins und Mitarbeiter zu speichern und ungeordnete Liste. Wie wir sehen können. Wie greifen wir auf sie zu? Wird einfach Knoten verwenden. Also haben wir ungeordnete Liste. Wie greifen Sie mit einem ungeraden auf eine Knotenliste zu? Jetzt und lassen Sie mich ein Nicken erstellen und mit Namen ID Personal nichts. Und natürlich, das Element in diesem Knoten, lassen Sie mich es Personal ELT als Elemente nennen. Und natürlich werden wir sie wie gewohnt importieren. Und lass mich einfach nach unten scrollen. Wir haben hier alle drei WC DOM, dass Wissen. Jetzt, da wir unsere Element-, Knoten- und Knotenliste
haben, können wir mit unseren Extrahieren von Daten beginnen. Nun, zunächst einmal werden
wir etwas verwenden, das wir zuvor verwendet haben, und das ist der StringBuilder. Und innerhalb der Zeichenfolge wird es tun. Lassen Sie uns, wir, wir werden es nur definieren. Und jetzt haben wir unseren StringBuilder. Und natürlich werden wir anhängen, wie viele Mitarbeiter wir haben. Also werden wir die Band dort beschleunigen. Und wir werden Stat-Liste nehmen und sehen, wie viele Mitarbeiter. Also verwenden wir einfach die dritte Richtlinie. Es gibt also einige, einige längerer und Mitarbeiter. Und natürlich werden wir zu einer neuen Linie kommen. Und wir können das benutzen. Und jetzt sind wir fertig mit unserer Länge. Nun, lassen Sie mich anpassen, Daten aus unserem Dokument
extrahieren. Das erste, was wir tun werden, ist,
durch die Elemente in dieser Statistik-Liste zu gehen , tut mir leid, bezeichnen in der Liste der Mitarbeiter. Und um das zu tun, werden
wir die for-Schleife erstellen, so weiter. Wie üblich, plötzlich bei r gleich 0 und endet bei besetzter Liste Punktlänge. Diese Länge. Und das erste, was wir tun werden, ist,
diesen Node des Notensystems zu nehmen und einen Knoten aus der Notenliste zu extrahieren. Wie machen wir diesen StatPlus-Punkt? Wir können sehen, dass wir hier einige Methoden haben. Allerdings werden wir dieses Element nehmen,
dieses Methodenelement, und wie Sie sehen können, gibt
es einen Knoten zurück, so dass ich,
wir gehen, um dieses Element zu extrahieren und es zu speichern. Und jetzt werden wir an diesen Knoten,
an den StringBuilder, die Nummer anhängen . So sba dot anhängen. Wir werden anhängen, dass dies Tag Nummer und gefolgt von I plus eins ist, da wir bei 0 beginnen , wollen wir
jedoch nicht bei 0 beginnen. Also das Personal Nummer 12 und so weiter. Nun, danach werden wir überprüfen, ob dieser Notensystemknoten ein Element ist. Und wie Sie hier sehen können, können
wir sehen, dass dieses Zeug als Element. Und lass mich zurückgehen. Also, wie machst du das? Also f, Beachten Sie diese Lücke. Wie wir sehen können, haben wir einige Methoden und wir sind interessiert und doch Knoten-Typ, werden
wir bezeichnet werden. Und Aeschylus ist gleich, um diesen Elementknoten zu beachten. Wenn dies also ein Element ist, werden
wir dies nehmen und es in einem Element speichern, wie Sie sehen können. Also haben wir hier ein Element erstellt. Wir sagen einfach, dass, wenn dieser Knoten ein Element ist, speichern Sie es und ELT. Und wie man zwei Elemente konvertiert und den Notensystemknoten in ein Element vergleicht. Das ist also der Fall. Wir können es umwandeln, nichts wird passieren. Es wird einfach von Knoten zwei Element konvertiert. Danach werden wir eine Attributliste erstellen. Und so können wir einige Attribute aus XML extrahieren. Wie Sie sehen können, haben wir unseren Ausweis. Wir können es mit dieser Methode extrahieren. Das erste, was wir tun werden, ist eine benannte Knotenkarte zu erstellen. Und natürlich importierte Säure, die wir gerade initialisieren werden. Also werde ich es Attribut und natürlich Personalelement nennen. Das ist also unser Element. Und wir bekommen einfach, bekommen diese Attribute von diesem Element. Danach werden wir unseren Knoten erstellen. Und das ist ein Attributknoten. Und hier werden wir unsere Elemente aus diesem Knoten extrahieren, aus dieser Attributliste. Wir könnten also mehr als ein Element oder ein mehr als ein Attribut hier haben. Also werden wir eine for-Schleife erstellen und alle Attribute innerhalb passieren. Es kommt jedoch vor, dass wir in diesem Fall nur ein Element oder ein Attribut haben. Und Ergebnisse sollten für andere Beispiele korrekt funktionieren. Also werden wir diese for-Schleife erstellen. Und in diesem Fall werden
wir die Länge dieser Attributliste erhalten. Und in diesem Fall werde ich, Attributknoten wird gleich der Attributliste wie vor diesem oder
jenem Element in diesem
Fall und j sein. Jetzt haben wir unser Attribut. Wir können einfach an diesen StringBuilder anhängen. So wie beschleunigt Band. Und wir werden den Attributknoten anhängen. Und wir können den Knotennamen mit der get-Methode erhalten. Und ich schreibe einfach gleich. Und natürlich möchte ich den Wert bekommen. So Attributknoten, die Knotenwert erhalten. Und natürlich lassen Sie mich einfach ausrichten. Und wir haben das beendet. Also bis jetzt haben wir gerade unsere Knotenliste erstellt, Knoten ein Element. Wir haben dieses Dokument genommen und es gespeichert und die Personalliste erstellt. Also hier haben wir das Personal. Wie Sie sehen können, haben wir zwei Mitarbeiter, das heißt, die die ID 101 hat, und wir beginnen mit der ID 2001. Jetzt, da wir unsere Mitarbeiter und die Mitarbeiterliste mit haben extrahieren Sie sie
einfach einzeln mit dieser for-Schleife. Und innerhalb dieser for-Schleife, werden
wir das Element der Notenliste Storied und Stab Node nehmen. Und dann ist dieser Notenknoten ein Element, wird einfach gehen, um es in ein Element zu konvertieren, und dann extrahieren Sie einfach die Attribute. Und in diesem Fall haben wir nur ein Attribut. Das ist die Idee. Allerdings haben wir vielleicht mehr als einen. Deshalb haben wir unsere zweite for-Schleife erstellt, und das ist die innere for-Schleife. Und in diesem Fall werden wir nur die Attribute anhängen, die wir haben, und wir müssen immer noch die Elemente extrahieren. Also haben wir den ersten Spitznamen und das Gehalt, und wir werden sie im nächsten Video extrahieren. So sehen wir uns dann.
33. Lokales XML 2: Jetzt müssen wir noch die Informationen des Personals extrahieren. Also haben wir den Spitznamen und das Gehalt der ersten Klasse. Und in diesem Fall können
wir einfach das von uns erstellte Mitarbeiterelement verwenden und die Daten von hier extrahieren. Also werden wir sba dot append verwenden. Und zuallererst werden
wir den Vornamen extrahieren. Und dann danach werden
wir Mitarbeiter Element verwenden und Elemente nach Tag-Namen erhalten. Das Element ist also der Vorname. Und natürlich ist der Artikel 0. Und wir werden es in etwas umwandeln, das lesbar oder stank ist. So können wir beget, besteuerte Kontextinhalte verwenden. Und in diesem Fall wird
es den Knoten als String zurückgeben. Und natürlich lassen Sie mich es speichern MS Drain first_name. Und dann werde ich einfach diesen FirstName verwenden. Also werde ich diesen Vornamen anhängen. Und lassen Sie mich einfach in eine andere Zeile springen. Und ich werde dasselbe für den anderen tun. Also haben wir den Nachnamen. Und in diesem Fall, lassen Sie mich das einfach kopieren. Im Grunde ist es hier. Und das ist der Nachname. Ich werde die Elemente nach Tag-Namen extrahieren und das ist zuletzt. Und natürlich das gleiche hier, Element bei 0 und Text Kontext Inhalt erhalten. Und natürlich werde ich nach oben so Nachname und springen. Jetzt ist die zweite oder die dritte Information, die wir extrahieren, der Spitzname,
wie Sie sehen können. Und schließlich haben wir das Gehalt. Also werden wir den Spitznamen anhängen. Und natürlich, String, lassen Sie mich es kopieren. Wir haben hier unseren Spitznamen und getElementsByTagName Name Name Name. Und schließlich werden wir so genannten Sprung angehängt. Also das letzte, was ist, Band hinzuzufügen. Wir haben im Gehalt. Und in diesem Fall werden
wir es speichern und zurückhalten auch. Also String-Gehalt gleich, sorry, lassen Sie mich einfach kopieren. Also Gehalt hier. Und holen Sie Elemente an diesem Strahl, Gehalt. Und schließlich werden wir einfach in
unsere Informationen und zu unserem StringBuilder, Gehalt plus Sprung angehängt . Und in diesem Fall lassen Sie mich einfach,
genau das, was wir hier getan haben. Also zuerst haben wir unser Element und in
diesem Element haben wir einige andere untergeordnete Elemente. So haben wir unsere Mitarbeiter, die in unserem,
wie wir sehen können, Mitarbeiterelement gespeichert ist . Nun, um die Daten daraus zu extrahieren, haben wir getElementsByTagName verwendet. Denken Sie jedoch daran, dass, wenn wir dieses get verwenden, getElementsByTagName, Wir werden eine Knotenliste zu erhalten. Also stellte er sie in einer geordneten Liste wieder her. Wir hätten das Gleiche hier machen können. Da wir jedoch nur ein Element haben, können
wir einfach jede Elementmethode verwenden und das erste Element bei Index 0 extrahieren. Und dann werden wir es in eine Zeichenfolge mit dem get-Text-Inhalt konvertieren. Also hätten wir es anders machen können. So können wir einfach eine Knotenliste erstellen und nennen wir sie. Und natürlich können wir Mitarbeiter Element verwenden, die Elemente nach Tag-Namen erhalten. Und natürlich können wir den FirstName verwenden. Und so ist das unsere Knotenliste. Dann können wir diesen Punkt 0 oder P8 verwenden und hinzufügen, erstellen Sie unsere for-Schleife und so weiter. So können wir genau das Gleiche tun wie zuvor. Wir wissen jedoch bereits, dass unser Personaldokument aus dem erstletzten Spitznamen zum Gehalt besteht, so dass wir nur einen von diesen haben. So können wir einfach diese Methode verwenden. Jetzt, da wir unser Gutes haben, lass mich einfach weitermachen und es tun. So laufen Sie als Java-Anwendung, die, weil Sie eine Träne bekommen. Und nichts geschah, nur weil wir unseren StringBuilder nicht ausgedruckt haben. Also hier haben wir unsere erste for-Schleife endet hier. So System.out.print. Führen Sie diesen Code noch einmal aus. Wir werden unsere Daten bekommen. Das erste, was wir getan haben, ist, wie wir sehen können, dass wir nur ein wenig hineinzoomen. Und wie Sie hier sehen können, ist
das erste, was wir getan haben, auszudrucken, wie viele Mitarbeiter wir haben. Wir haben also zwei Mitarbeiter hier. Dann gingen wir zu unseren Mitarbeitern und extrahierten einige Daten. Also natürlich haben wir angehängt. Also, Mitarbeiter Nummer eins hier, tut mir leid, ich hätte nicht einfach springen können und sterben können. Und lassen Sie mich das noch einmal laufen. Wir werden das kriegen. Also Personal eins zu als die ID 101. Also haben wir daraus ausgedruckt. Jetzt, da wir nur eine Idee haben, hätten
wir dies bei 0 verwenden können und diese for-Schleife entfernen können. Noch einmal bekomme ich das gleiche Ergebnis wie zuvor. Wenn wir jedoch mehr als ein Attribut haben, wird
dies nicht funktionieren. Es wird einfach für uns diese Linie zurückkehren. Jetzt lass mich einfach wieder hierher gehen. Danach drucken wir nur Vorname, Nachname,
Spitzname und Gehalt aus und machen genau das Gleiche für den zweiten Mitarbeiter. Also haben wir Mitarbeiter zu ID 2001, erster Spitzname und Gehalt. Dies ist ein schnelles und einfaches Beispiel über XML und wie man Daten aus XML-Dokumenten extrahiert. In den nächsten Videos werden wir tiefer in
dieses XML-Dokument graben , das Art von Sache extrahiert und Sie dann sehen.
34. XML aus Browser: Hallo und willkommen zurück. Und in diesem Video sind wir immer noch über XML. Dieser Begriff würde jedoch keine lokale XML verarbeiten. Wir gehen zu Google und extrahieren einige Daten von einer Website. Nehmen wir an, wir haben, gehen
wir zu Google und BBC News. Und wie Sie sehen können, wenn wir hierher gehen, so sind das die Neuigkeiten. Und natürlich können wir einfach, wenn wir Daten aus XML extrahieren wollen, können
wir einfach RSS dot xml schreiben. Und das wird uns auf eine Seite, und das ist der RSS-Feed von der BBC News. Also sollte unser Programm diese Nachrichten aufnehmen und einfach extrahieren und sie entweder durch Drucken in den Rat oder speichern sie in einer Datei. Und wir werden sehen, was passieren wird. Lassen Sie mich einfach eine neue Datei erstellen. Wird einfach eine Klasse, tut mir leid, wenn man es nennt. Bbc Nachrichten. Das ist unsere Klasse. Und in dieser Klasse werden
wir wie üblich die Hauptmethode verwenden und eine Ausnahme auslösen. Jetzt fangen wir mit unserer Klasse an. Zunächst einmal ist
dies die URL, und wir werden sie einfach in einer URL speichern. Natürlich wichtig. Aber das Netz, das u r, l, dann nenne ich es Sie. Und in diesem Fall, wenn ich diese URL erstellen möchte, kann
ich einfach
eine neue URL erstellen und den Link von hier und hier kopieren. Also jetzt haben wir unsere URL. Jetzt, wie wir es verwenden können, können
wir den Eingabestrom verwenden. Und in diesem Fall, lassen Sie mich es wohl nennen. Und ich werde URL-Punkt verwenden. Wir haben den Append-Stream, es
tut mir leid, fügen Sie Stream an. Und dies wird einen InputStream generieren. Und natürlich sollte ich es aus java.io importieren, diesem Eingabestrom. Jetzt, da wir unsere Daten haben, unsere XML, können
wir einfach mit Baden Document Builder Fabrik starten wie zuvor, importiert DBF gleich die Fabrik zu dokumentieren. Und die neue Instanz. Dann werden wir unseren Document Builder erstellen. Dasselbe wie zuvor. Document DB ist gleich DBF dot und gefolgt von New Document Builder. Dann werden wir unser Dokument erstellen und dieses Mal das Argument begrenzen. Und DB diese Box. Wir werden den Eingangsstrom übergeben, den wir gerade erstellt haben. Natürlich müssen wir diese einsetzen. Importieren Sie also aus Oktett drei WC, Eingabe von Java, ausgezeichnete XML-Parser. Jetzt haben wir unser Setup. Wir können einfach mit dem Extrahieren von Daten beginnen. Das erste, was wir tun werden, ist, den StringBuilder zu erstellen, um Daten zu speichern. Also StringBuilder Geschwindigkeit gleich dem neuen StringBuilder. Und in diesem Fall werde
ich hier etwas Stärke hinzufügen, da ich den SP dot append verwenden kann , kann ich diesen Parameter verwenden, also werde ich sie in HTML starten. Also lassen Sie mich einfach den Kopf erstellen, der zu unserer HTML-Datei berechtigt ist. So HTML. Und in diesem Kopf haben wir den Titel. In diesem Fall ist es BBC News. Und natürlich sollte ich dann den Titel schließen. Schließen Sie den Kopf und gefolgt vom Körper. Ich sollte jetzt passieren, die Leiche. Jetzt ist das unser StringBuilder. Beginnen wir mit unserem XML. Also das erste, was wir tun werden, ist wie zuvor, BAD Knotenliste. Und in diesem Fall werde ich es Elementliste nennen. Natürlich werde ich das Dokument verwenden, das
Elemente nach Tag-Namen erhält und dieser Name ist Element. Also lassen Sie mich das jetzt importieren. Und alles ist. Warum habe ich hier Artikel geschrieben? Wenn ich zurück zu unseren BBC News und mit der rechten Maustaste, wir haben Ansicht Seite Quelle. Und das ist unser XML-Dokument. Wie Sie sehen können, haben wir den Titel, Beschreibung, den Link, das Bild und so weiter. Wir sind jedoch an den Artikeln interessiert. Und diese Elemente sind entweder Gegenstand, Titel und Beschreibung. Also haben wir diesen Titel und natürlich in der Beschreibung, dann haben wir einen anderen Artikel mit Titel und Beschreibung auch. Also sind wir an den Artikeln interessiert. Wie Sie sehen können, haben wir so viele Artikel und wir werden alle von ihnen extrahieren. Also lassen Sie uns hier zurück und arbeiten mit unserem Artikel wie zuvor, Knoten, Element, Knoten und Element Element, ELT. Und natürlich. Importieren Sie diese beiden von allen drei WC, die stumm. Jetzt, nachdem wir unseren Knoten,
letzten Knoten und Element erstellt haben, werden wir unsere for-Schleife erstellen. Und die Grenze ist das Dokument oder document.getElementById. Leider können wir einfach die von uns erstellte Artikelliste verwenden. Also Artikelliste, aber Länge bekommen, oder? Es sei denn, das bekommt Länge. Und jetzt können wir mit unserer for-Schleife arbeiten. Also innerhalb der quadratischen Schleife werden wir eine Notiz nach dem anderen nehmen, also werden wir sie in dem Elementknoten speichern, den wir erstellt haben. Also item naught wird gleich den Elementen, Listenelement am Index i. Nun, danach werden wir überprüfen, ob dies ein Element ist. Jetzt. Und der Prozess lokal. Hier. Wir haben dies als, wie Sie hier sehen können, wir überprüft, ob Mitarbeiter Knoten Knotentypen zu erhalten. Also verwenden wir die get-Methode. Und wenn dies gleich dem Elementknoten ist, werden wir
jetzt eine andere Methode verwenden. Und wir können einfach diesen Elementknoten verwenden ist Instanz ein Element, wenn dies der Fall ist. So Instanz von bedeutet, dass diese Elementnote Instanz dieses Elements ist, es
tut mir leid hier, Instanz wie diese. Und wenn dieser Elementknoten eine Instanz des Elements ist, werden
wir diese Anweisung eingeben. So ist dies der Fall wie zuvor, wir werden in Element eine Geschichte umgewandelt, die Geschichte in Punkt ELT. Und wie wir das machen, machen wir das? Wir werden einfach schreiben Element und gefolgt von item.name. Jetzt, da wir unser Element Element haben, können
wir es einfach und unseren StringBuilder speichern. Allerdings erstellen wir HTML. Also lassen Sie uns die verwenden, wie Sie sehen können, haben wir den Titel und die Beschreibung. So wird der Titel in H2 und die Beschreibung in einem Absatz gedacht. Also, wie tun Sie das als v dot anhängen H2. Also hier haben wir Rand zwei. Und natürlich, danach, werden
wir Element Element verwenden, die Elemente nach Tag-Namen erhalten. Und dieser Name ist der Titel. Wie wir schon gesagt haben. Wenn wir hier zurück gehen, haben wir innerhalb des Artikels, den Titel und die Beschreibung. Also werden wir den Titel wie zuvor erhalten, das Element bei 0, das TextContent erhält. Und dann werde ich dieses Tag schließen. Also werde ich einfach in der Nähe verwenden. Jetzt. Danach werde ich einfach das Absatz-Tag verwenden, um die Beschreibung zu erstellen. So sba dot anhängen. Und in diesem werde ich unser Absatz-Tag erstellen, gefolgt von Elementelementen, die Elemente nach Tag-Namen erhalten. Und in diesem Fall haben wir Beschreibung. Und wie üblich, das Element bei 0. Dann der Textinhalt. Natürlich werde ich es auch schließen. Also hier schließen wir das. Und jetzt haben wir unsere Daten hier. Schließlich, nachdem ich von ds beendet habe, lassen Sie mich das einfach ändern. Also hier haben wir unsere for-Schleife. Nachdem wir diese while-Schleife beendet
haben, müssen wir unseren Körper und HTML schließen. Also füge ich einfach hier an, beschleunigt das, steige unseren engen Körper auf. Schließen Sie dann HTML. Jetzt sind wir fertig mit dem Anhängen und wir sind gesetzt. Also, wenn ich vorgehe und Nein und Geschwindigkeit ausdrucke, machen wir das. Und wie wir sehen können, haben
wir hier so viele Worte. Aber ich habe sie nur in einer Zeile bekommen, weil ich sie nicht bei Kunden hier aufbewahrt habe. Also nach jeder Beschreibung oder jedem Titel werde
ich ausgerichtet springen. Und natürlich, und wenn ich das noch einmal durchbringe, werden
wir die bekommen. Jetzt. Warum habe ich sie so gelagert? Warum habe ich ein HTML erstellt? Also lassen Sie uns einfach diese Daten erhalten und sie in einem HTM L phi speichern. Also, wenn ich hier gehe, bevor wir unser Dokument, Linda Factory Document Builder und Dokument erstellen, können
wir unsere Datei erstellen, die wir diese Daten speichern werden. Und so werde
ich nach dem Eingabestream einfach unsere Datei erstellen. Nennen wir es Nachrichten, und es wird gleich nu sein. In diesem Fall werde ich es benennen, dass SDM verwendet. HTM steht also für HTML. Jetzt, da wir unsere Datei erstellt haben, muss
ich sie natürlich von java.io ablehnen. Danach werde ich den FileWriter beschäftigen. Wir haben von diesem Dateischreiber schon einmal gelernt. Also werden wir phyla Datei Writer auferlegen. Und danach werden wir einen Dateiwriter erstellen. Und in dieser Datei Nachrichten, dann werden wir den gepufferten Writer erstellen, BW. Und natürlich hat der neue gepufferte Writer mit dem Parameter von f w Writer trotzt. Dann schließlich werden wir den Druckschreiber erstellen, und dies wird dies zum Extrahieren verwenden, um Daten in unsere Datei zu schreiben. So Brin Schriftsteller, PW gleich zu neuen Druckschreiber und Vw als Parameter sein. Und jetzt machen wir uns auf.
35. XML aus Browser 2: Nun, nachdem wir unsere Datei gesetzt haben, in der wir unsere XML-Daten schreiben werden, werden
wir es hier verwenden, nachdem wir das End-Tag des Körpers und HTML angehängt
haben, werden wir die BW verwenden, diese Marke, Sb. Dann werden wir es schließen einen p-Typ aufgrund der Nähe. Und jetzt, wenn ich diesen Code ausführen, können
wir sehen, dass wir hier in unserem Projekt haben, haben
wir Nachrichten, dass SDM, also ist dies unsere HTML-Datei. Nun, wenn wir darauf klicken, werden
wir den Titel und die Beschreibung aller Nachrichten erhalten. Also haben wir die erste Titelbeschreibung als die zweite Titelbeschreibung, und so weiter. Also haben wir alle Neuigkeiten hier und unsere BBC News. Mittlerweile. Dies ist etwas, das Sie tun können, wie das jetzt veränderbar ist. Also jedes Mal, wenn wir klicken, so dass, wenn ich diesen Code ausführen, jetzt, werde
ich diese Nachricht bekommen, dass HTML. Aber wenn ich das morgen
laufe, werde ich verschiedene Titel und Beschreibungen bekommen. Es hängt von der Zeit Iran-Zwietracht. Seitdem verwenden Sie jeden Tag ändern. Jetzt können wir hier etwas hinzufügen, und dies ist, um diese Nachricht, dass HTML mit dem Browser zu verknüpfen. Eine Möglichkeit, dies zu tun, ist die Verwendung des Desktops. Und wir haben eine Methode, die Gad Desktop genannt wird. Und innerhalb dieser Methode können wir stöbern und wir werden die Nachrichten durchblättern. Wir müssen es jedoch in URI konvertieren. So verwendet, um URI. Nun, wenn ich diesen Code ausführe, wird
er mich in den Browser umleiten. Und in diesem Browser, werde
ich diese Titel und Beschreibungen zu bekommen. Das ist also die Nachricht von BBC. Ich nehme sie einfach aus der XML-Datei oder einem Dokument studierte sie
dann in meiner eigenen Datei als HDMI. Nun, natürlich, könnte ich das von hier aus verwenden oder einen Browser mit dieser Methode direkt hier
generieren. Und lassen Sie mich nur ein wenig über MDM erklären. Und für diejenigen, die es nicht wissen. In HTML haben wir vordefinierte Tags. Zum Beispiel ist Kante zwei Überschrift zwei, und B steht für Absatz. Also, wenn wir eine neue HTML-Datei erstellen wollen,
zuerst, was wir tun werden, ist, das Tag HTML zu erstellen, dann Kopf, dann den Titel. Natürlich werden wir eine engere schreiben, dann schließen Sie den Titel gefolgt von dem Kopf. Danach werden wir unseren Körper schreiben. Also fügen wir dieses Body-Tag an. Wir haben alles geschrieben, was wir hier von H2 und Absatz wollen. Dann schließen wir nach dem Abschluss einfach den Körper und schließen den HTML. Und jetzt haben wir unsere SDM vergrößert. Dann haben wir es in der Datei gespeichert. Wir haben das neueste HDR entwickelt. Und natürlich durchsuchen wir es einfach mit dieser Methode genau hier. Und das ist es für diese Übung. Wir können dieses Programm verwenden, wann immer wir wollen, um die Nachrichten zu überprüfen. Wir können einfach zu Eclipse gehen und diesen Code ausführen. Und wir werden die Nachrichten direkt bekommen. Und das ist es für dieses Video. Ich hoffe, Sie genießen dieses Programm und sehen uns das nächste.
36. Kataloge: Jetzt lassen Sie uns ein anderes Problem lösen. Und hier haben wir einen Katalog. Das ist also unsere Datei Katalog Punkt x m n. Das ist also unser Dokument. Und in diesem Dokument haben wir Katalog. Und in diesem Katalog haben wir CDs. Wie wir sehen können, haben wir
in jeder CD den Titel,
den Künstlernamen, Land,
Firma, Preis und Rendite. Nun, was wir hier tun werden, ist, dass wir über all diese CDs gehen werden. So haben wir so viele CDs und Rücksicht auf die billigste CD und die älteste CD zu extrahieren. Also werden wir zwei CDs extrahieren. Eine, die die billigste ist, und die zweite ist die älteste, wenn alle diese Städte. Wie wir hier sehen können, haben wir 1971, wir scrollen nach unten, wir werden 19881987 finden und so weiter. Also lasst uns weitermachen und unser letztes hier schaffen. Also hier haben wir unsere Summe L, und ich werde unsere Klasse mit Namen es Katalog erstellen. Und fangen wir wie gewohnt an. Das erste, was wir tun werden, ist, unsere Hauptmethode zu erstellen. Natürlich, werfen Sie die Ausnahme. Und dann können wir mit der Ausgabe beginnen. Jetzt haben wir unsere Datei hier, so wird einfach einen Dateiimport erstellen, importiert von java.io. Und begrenzen wir phi gleich phi. Und in dieser Datei haben wir alle Dateinamen-Katalog, dass Ekzeme. Und danach können
wir mit der Erstellung unserer Document Builder Factory beginnen. So Dokumenthersteller Factory importiert aus Java extra das XML. Und ich schränke DVF wie gewohnt ein und dokumentiere die Fabrik, diese neue Instanz. Dann werden wir unseren Document Builder erstellen. Nennen wir DB. Und natürlich wichtig. So dB wird es gleich DBF sein, diesem neuen Dokumentengenerator. Und schließlich, lassen Sie uns unser Dokument erstellen. Und das ist unser Dokument, und wir müssen es von drei WC importieren, die unten. Jetzt haben wir unser Dokument und wir haben unsere Datei zurückgegeben, beginnen mit unseren Extrahieren von Daten. So haben wir Liste wie üblich von hier importiert bezeichnen. Und lassen Sie uns es nennen, Notiz oder ein L. Also bezieht sich dies auf Knotenliste. Und wir haben auch einen Knoten, und wir werden es Knoten mit einem Kleinbuchstaben n. Und schließlich haben wir unser Element wie gewohnt importiert und ich begrenzen ELT. Nun gehen wir zurück zu unserem Katalog Punkt XML-Dokument und lassen Sie uns sehen, was wir tun werden. Wir werden also den Namen des Künstlers und den Titel des Lebenslaufs ausdrucken, gefolgt von dem Jahr, falls wir die CD mit
dem ältesten Jahr extrahieren und dann den Preis folgen wann immer wir die Stadt mit dem billigsten Preis. Also werden wir eine ArrayList von jedem einzelnen dieser Elemente erstellen. Also werden wir eine ArrayList für Titel, Test und Preis erstellen. Und Getriebe wird einfach enden wachsen, und ignorieren das Land und die Firma in diesem Fall. Das erste, was wir tun werden, ist eine importierte ArrayList zu erstellen. Und wir werden es als eine Schnur nehmen. Und so ist das der Name. Und natürlich, eine neue Array-Liste zu initialisieren. Und lassen Sie mich das kopieren und einfügen. Also haben wir vier ArrayList. Und in diesem Fall eine für den Namen. Wir haben gesagt, dass wir einen für den Titel und einen Preis brauchen. Und der letzte ist für den Titel. Und das ist für den Preis. Und schließlich ist dies für die. Nun, nachdem wir die Array-Listen erstellt
haben, können wir mit unserem Code beginnen. Das erste, was wir tun werden, ist, wie üblich, mit einer for-Schleife zu
beginnen, die alle Elemente oder alle CDs in diesem Fall durchläuft. Bisher. Und natürlich, bevor wir das tun, werden wir darauf hinweisen, dass wir alle CDs brauchen. Wie machen wir das? Wir werden einfach zugewiesen, um Liste db Punkt zu bezeichnen, erhalten Elemente nach Tag-Namen. Und das ist eine CD. Jetzt haben wir alle CDs in unserem und l, und wir können anfangen, sie einzeln zu extrahieren. Die Grenze hier ist also ein L Punkt Get Länge. Also die Länge unserer Knotenliste. Jetzt können wir beginnen, indem wir ein Element
bei i bezeichnen und prüfen, ob dieser Knoten eine Instanz eines Elements ist. Also f Knoten, Instanz des Elements. Wenn dies zerfällt, dann gehen wir mit R-Code voran. Und in diesem Fall werden wir diesen Knoten in
ein Element konvertieren und ihn in ELT speichern, also Element. Und hier werden wir den Knoten konvertieren, den wir haben. Und schließlich können wir jetzt die Daten bekommen. Also in diesem Knoten haben wir eine CD, und in jeder Stadt haben wir den Titel, Künstler, Land, Firma, Preis und Jahr. Also werden wir einfach diesen Titel nehmen, zum Beispiel, und speichern ihn in unserer ArrayList. Das ist der Titel. Also, wie machen wir das? Wir werden Titel dieses Pad nehmen und wir werden hinzufügen. Eelt dot erhalten Elemente nach Tag-Namen. Und in diesem Tag werden
wir zeigen, dass wir den Titel brauchen. Und natürlich brauchen wir den ersten Punkt in diesem Titel. Und das ist bei Punkt 0 und erhalten Sie den zusätzlichen Inhalt. Jetzt, da wir unseren Titel haben, können
wir genau dasselbe für alle anderen Elemente tun. Also lassen Sie mich es dreimal kopieren und einfügen. Und jetzt haben wir unsere, wie wir, wie wir bereits gesagt haben, haben wir den Titel, wir haben den Namen. Und wir haben auch die Bryce hier. Und lassen Sie mich einfach die USA ändern. Also hier haben wir die, wir sagten Titel und wir sagten, der Künstler und Preis. Und schließlich das Jahr. Lassen Sie mich nur eine Sache sein. Warum haben wir diesen Artikel bei 0 hinzugefügt? Denken Sie daran, dass, wenn wir getElementsByTagName verwenden, dies generiert, generiert für uns eine Knotenliste. Und in diesem Fall können
wir deutlich sehen, dass wir nur ein Element in dieser Knotenliste haben, und das ist der Titel. Und in diesem Fall können wir einfach das erste Element extrahieren. Da wir nur ein Element haben, können
wir das Element bei Index 0 extrahieren. Dies ist das erste Element, und das würde hier funktionieren. Jetzt haben wir unsere Daten und sie werden in der ArrayList gespeichert. Dann gehen wir jetzt mit unserem Code fort. Also nach dem Extrahieren all dieser Daten aus Catalog dot xml, und jetzt können wir sie außerhalb unserer for-Schleife verwenden da sie im Array gespeichert sind, können wir hier auflisten. Lassen Sie uns jetzt mit unserem Vergleich beginnen. Jetzt haben wir gesagt, dass wir die Stadt mit dem niedrigsten Preis wollen. Also werden wir den Preis nehmen und jeden Preis hier mit dem nächsten vergleichen. Und wann immer wir das Minimum finden, drucken
wir einfach den Titel,
den Künstlerpreis aus und fahren dann mit unserer ältesten Stadt fort. Lassen Sie uns zunächst mit dem Preis beginnen. Also lassen Sie mich einfach eine ganze Zahl erstellen und das wird der steigende Mindestpreis sein. So Preis. Und in diesem Fall werde ich eine ganze Zahl zuweisen, die max Wert ist, das ist eine Konstante, die den Maximalwert hält und n haben kann. Da wir also auf ein Minimum überprüfen werden, ist
es besser, mit einer sehr großen Ganzzahl zu beginnen. Nun, danach werden wir alle Elemente
hier durchlaufen und sehen, welches das Element mit dem niedrigsten Preis ist. Also lassen Sie uns eine for-Schleife erstellen und es wird mit i gleich 0
und gleich Bryce Punktgröße beginnen . Jetzt werden wir das durchgehen und überprüfen, ob Männer. Der Preis ist größer als der Mindestpreis hier. Also Preis, der bei i, f, das ist Zerfall. Dann lass mich einfach den Index hier starten. Also Index des Minimums gleich 0 zu sein auf den ersten. Jetzt werden wir für diesen Preis ArrayList überprüfen. Und wenn wir ein Element finden, das kleiner als dieses Minimum ist, werden
wir dieses Minimum zuweisen, um gleich dem Element zu sein, das wir gerade gefunden haben. Also, wie machst du das? Also, Männer Preis sollte gleich dem Preis sein, aber bei i und wir werden speichern, kaufen. Also Index wird gleich i sein. Jetzt haben wir unseren Index und unser Minimum hier. Lassen Sie mich sehen, was ist. Also hier haben wir, also haben wir hier den Preis, der eine Stärke ist. Wie gesagt, haben wir eine Array-Liste von Strings erstellt und unser Mid-Price ist eine Ganzzahl. Also, wie gehst du damit um? Wir können diese Zeichenfolge einfach in eine ganze Zahl konvertieren, indem wir das Integer.parseInt Ende verwenden. Und in diesem Fall ist dies der Parameter. Und das Gleiche wird hier gelten. Also Integer, dass Bus und hier haben wir Kapital M und jetzt bekommen wir, also nachdem
wir diese ganze Schleife verlassen haben, werden wir unser Minimum haben und wir werden den Index haben. Da wir also den Titel, den Künstler
und den Preis ausdrucken müssen , können wir einfach das Element des Titels im Index ausdrucken. Dieser Index. Und das Gleiche für Künstler und Preisgestaltung. So können wir hier ausdrucken,
sparen Sie, dass die CD mit dem niedrigsten Preis und erhalten den Preis, der am Index bekam. Und wir können einfach sagen, dass die CD mit dem niedrigsten Preis
des Preises durch erstellt wird und speichern Sie den Namen so erstellt wird von. Und wir werden einfach hinzufügen. Also hier. Lassen Sie mich hier einfach eine neue Zeichenfolge erstellen. Und wir werden sagen, dass es vom Künstler geschaffen wird. Und das ist der Name.gov. Und wir werden einfach sagen,
ich werde es beenden und den Namen der Stadt und den Namen. Also der Name der CD und Titel. Und hier habe ich Index. Also lassen Sie mich einfach, lassen Sie mich einfach, nur dieses Jahr haben wir eine Array-Liste, Name, Titel, Preis, und wir haben den Preis verwendet. Wir haben verwendet, es tut mir leid, ich muss ein Pluszeichen hinzufügen und wir bekommen, und wenn wir diesen Code ausführen, werden
wir eine Zahlenformatausnahme bekommen. Also hier in unserem Katalog hatten
wir einige, wie Sie in unserem Katalog sehen können, dass XML wir den Preis als doppelt haben und wir Integer verwendet. Eine Möglichkeit, damit umzugehen, besteht darin, einfach Double zu verwenden. Und dann werden wir uns verdoppeln. Und das Gleiche gilt hier. Double.ParseDouble. Und wir haben jetzt, nachdem wir das beendet haben, werden wir diesen Code einfach noch einmal ausführen. Und wir haben die CD mit dem niedrigsten Preis von 7.20 wird durch einfach lesen
erstellt und der Name der Stadt ist Bilderbuch. Wenn wir nun zu unserem Katalog zurückkehren und alle CDC durchsuchen, können
wir feststellen, dass diese Informationen korrekt sind. Wir haben noch das Jahr und wir werden es im nächsten Video tun.
37. Kataloge Beispiel: Unsere nächste Aufgabe ist es, die CD mit der ältesten oder der niedrigsten Stufe zu finden. Also gehen wir zurück zu unserem Code. Und wie wir es hier getan
haben, werden wir aber genau dasselbe anwenden. Jetzt mit unserem Gott, es
tut mir leid, hat eine Reihe von Preis geliefert. Also lassen Sie mich das einfach kopieren und es noch ein Mal hier einfügen. Und ändern Sie das. Also Minimum Jahr und x zwei. Und natürlich müssen wir diese auch hier ändern. Also werden wir nach unserem hier suchen. Und du hast Benzin. Aber anstatt es in ein Double zu übergeben, werden
wir es in eine ganze Zahl übergeben. Also Integer.parseInt. Auch das Gleiche hier, Integer.ParseInt. Und das letzte, was wir tun werden, ist, Index 2 und Jahr zu ändern. Jetzt geht es uns gut. Wir können uns tatsächlich geben, da unser Preis hier sind Tests berechtigt sind, haben die gleiche genaue Länge. Also müssen wir es nicht wirklich ändern, aber wir ändern es einfach, nur damit wir verstehen können, was wir hier tun werden. Jetzt, da wir unser Minimum und den Index haben, können
wir einfach auch schreiben, wie wir es hier getan haben. Also lassen Sie mich das noch einmal kopieren und einfügen. So kann die CD mit uns sagen, eigentlich ist
die älteste Stadt, die wir sagen können, geschaffen. Und und durch, wir können einfach entfernen. So werden wir die älteste Stadt erstellt wird, dann wird das Jahr durch den Namen und den Namen der Stadt ist, und Titel, die bekommen. Also hier müssen wir den Preis auf das Jahr ändern. Und wir sind gut. Wenn ich diesen Code noch einmal ausführe, bekomme
ich die CD mit dem OS-Preis. Dies ist die erste Druckanweisung, die hier neu erstellt wurde. Jetzt ist die zweite Print-Statement ist die älteste Stadt im
Jahr 1985 durch einfach gelesen und der Name der CD ist Bilderbuch erstellt . Beachten Sie hier, dass sie gleich sind, also ist etwas stark. Als ob wir hierher zurückgehen, können
wir einfach feststellen, dass wir den Index des ersten verwenden. Wir brauchen jedoch den Index zwei und führen diesen Code noch einmal aus. Die älteste Stadt wurde 1968 von
Otis Redding geschaffen und der Name der Stadt ist das Dock der Debatte. Jetzt haben wir unsere Informationen, wir extrahierten sie aus unserem Katalog, dem XML. Und wenn wir zurück zu unserem Dokument gehen und alle diese CDs hier durchsuchen, können
wir einfach vereinfachen, dass alle diese Informationen korrekt und korrekt sind. Der niedrigste Preis ist also 7,20 und der älteste ist 1968. Und das ist im Grunde für dieses Beispiel. Wenn wir einige davon ändern möchten, können
wir einfach alle Unternehmen auflisten. Also eine Möglichkeit, das zu tun, wir haben bereits ArrayLists. Und in diesem Fall können wir eine neue Array-Liste nur für den Firmennamen erstellen. Also ArrayList, Unternehmen mit zwei neuen ArrayList. Und tatsächlich, wenn wir den Typ hier angeben, müssen
wir ihn hier nicht noch einmal im Endtag angeben. So können wir das einfach entfernen und es wird korrekt funktionieren. Also jetzt haben wir unsere Firma. Lassen Sie uns die Informationen des Unternehmens innerhalb dieser ArrayList hinzufügen. Also Unternehmen, dass, dass wir werden Element hinzufügen, die Elemente nach Tag-Namen erhalten. Und der Tag-Name ist Firma. Und dann dieses Element bei 0 und konvertieren Sie sie in eine Zeichenfolge mit dem get textContent. Jetzt, da wir unsere Firmennamen haben, können
wir einfach eine for-Schleife erstellen und alle Firmennamen durchlaufen. Wie gesagt, können wir die Unternehmensgröße verwenden und ausdrucken Unternehmen. Und lassen Sie mich einfach hier Firma i plus
12 Punkte hinzufügen und dann drucke
ich einfach das Unternehmen am Index i aus. Und davor können wir einfach Firmen. Und jetzt, wenn wir diesen Code noch einmal ausführen, werden
wir all diese Firmen bekommen. Also haben wir gerade jetzt das Unternehmen eins,
Columbia, Firma drei, RCA, BMG, CBS, und so weiter. Also hier ist eine Liste aller Unternehmen in diesem Katalog, aber XML. Jetzt. Wenn wir also ein XML-Dokument haben, können wir es
jetzt ändern. Wir können die Entzündung nehmen,
extrahieren, was wir wollen, und sie verwenden, wie wir wollen. Und das ist es im Grunde für dieses Beispiel. Wir sehen uns im nächsten Video.
38. Company: Sehen wir uns nun ein anderes Beispiel an. Und in diesem Fall haben wir eine XML-Datei, die Firma ist. Und in diesem Unternehmen haben wir einige Mitarbeiter. Wie Sie sehen können, haben wir den ersten Mitarbeiter, wir haben den
Vorname, Nachname und das Gehalt. Also haben wir brutto und netto innerhalb des Gehalts. Dann haben wir den zweiten Angestellten und so weiter. Wir haben vier Mitarbeiter. Jetzt gehen wir und schaffen unsere Klasse, und nennen wir sie Firma. Das ist also unsere Klasse. Wie üblich beginnen wir mit unserer Erstellung unserer Hauptmethode und werfen die Ausnahme. Also Rose Ausnahme. Dann können wir mit der Erstellung unserer Datei beginnen. So 55 zu einer neuen Datei und schlecht verunreinigt. Und mit Namen ist Firma. Das XML. Jetzt, da wir unsere Geldbuße haben, können
wir mit der Erstellung unserer Document Builder Factory beginnen. Importierte DBF gleich Dokument, erstellen Sie die Factory. Und in diesem Fall, der neue Weihrauch wie gewohnt. Dann gehen wir zum Erstellen unseres Document Builders. So geschraubt db gleich DBF, dass Sie dokumentieren Filter. Und schließlich können wir unser Dokument von o bis drei WC.com importiert erstellen. Wie üblich, geschätzte Document DB, die unsere Datei versperrt. Jetzt haben wir unser Dokument, wir können mit dem Extrahieren unserer Daten beginnen. Also das erste, was wir tun werden, ist wie üblich, erstellen Sie unsere Knotenliste und L. Dann müssen wir natürlich importieren. Dann, nachdem wir unsere Knotenliste erhalten
haben, können wir unseren Knotenimport erstellen. Vergessen Sie nicht, es von Ogden PWC dot-com zu importieren und nicht von diesem sun.org und so weiter. Hier haben Sie Bartlett und das Element auch ELT importiert. Jetzt können wir weitermachen. Also das erste, was wir tun werden, ist, die Knotenliste zu erstellen und l. Und auf dieser Seite,
dieses Knotenlistendokument, das Elemente nach Tag, Namen zu erhalten. Und wir werden bekommen, wenn wir zu unserer Firma zurückkehren, werden
wir den Angestellten holen. Und in diesem Fall haben wir Mitarbeiter. Und jetzt in dieser Knotenliste haben
wir die Informationen des Mitarbeiters wie Vorname, Nachname und Gehalt. Jetzt gehen wir weiter. Unsere Schleife beginnt also bei 0 und endet mit und doch Länge. Jetzt werden wir den Knoten zwei zuweisen. Bei Punkt i, dann werden wir natürlich überprüfen, ob diese Knoteninstanz des Elements, das ist der Fall. Wir können mit unserem Code fortfahren. Und jetzt, wenn dieser Knoten ein Element ist, können
wir einfach so Element konvertiert und gefolgt von bezeichnen. Gehen wir zurück zu unserem Firmendokument und wir können sehen, dass wir das erste, letzte Jahrhundert haben. Und in diesem Fall müssen wir eine Array-Liste erstellen, um diese Daten
nur in unseren Arrays zu speichern. Und in diesem Fall können Sie sie hier erstellen. Also Array-Liste, und diese Liste ist eine Zeichenfolge. Und in diesem Fall nennen wir es Vorname. Und natürlich Array-Liste. Und der zweite ist der Nachname. String auch Nachname gleich mu Array-Liste. Und definieren Sie eine Array-Liste sein wird, wir haben eigentlich zwei, wie Sie hier sehen können, haben
wir eine, die eine ganze Zahl und das zweite Doppel ist. Also lassen Sie uns sie als Ganzzahl und Double erstellen. Also Array-Liste von ganzen Zahlen. Und in diesem Fall muss
ich die Wrapper-Klasse hier verwenden, sorry. Und der Name ist grob und initialisieren Sie es einfach. Und die letzte Array-Liste wird vom Typ double sein. In diesem Fall ist es das Nettogehalt und initialisieren Sie es wie gewohnt. Jetzt haben wir unsere Array-Liste, und jetzt können wir unsere Daten in diesen ArrayLists speichern. Jetzt gehen wir zurück zu unserem Element. Und in diesem Element können wir die Werte speichern. Also Vorname, aber hinzufügen, wir werden die LT hinzufügen, aber getElementsByTagName und der Typname ist Vorname. Und nachdem wir diesen Vorname erhalten
haben, werden wir das erste Element bekommen. Also, dieser Artikel, es tut mir leid. Hier müssen wir nur etwas ändern, um nur die zusätzlichen Klammern hier hinzuzufügen. Und nach dem Abschluss Von diesem können
wir mich einfach nur hier lassen, wir fügen einfach etwas hinzu und es ist nicht notwendig. Also Element bei 0 und das erhält Textinhalt. Und wir haben jetzt die zweite ist der Nachname. Also Nachname, aber fügen Sie hinzu. Und innerhalb dessen erhalten Sie Elemente nach Tag, Name, Nachname, Name, dieses Element. Und natürlich schloss das Element bei 0 wie gewohnt, die Textinhalte erhalten. Nun, nachdem wir mit dem Vor- und Nachnamen beendet
haben, müssen wir zu Integer und Double übergehen. Wir haben eklig. Und jetzt, um unsere
Eigentlich zu erstellen , um unser Element in die Array-Liste der ganzen Zahlen hinzuzufügen, müssen
wir es als Ganzzahl haben. Also, wann immer
wir müssen, wollen wir hier in unserem Wachstum eine ganze Zahl hinzufügen. Sie können einfach sagen, Glanz, dass Anzeige. Und das erste, was wir tun werden, ist die Integer.parseInt-Methode zu verwenden. Und innerhalb dieser Methode können wir einfach das plt.plot-Element verwenden. Und in diesem Fall müssen wir Wachstum und das Element bei 0 bekommen und ich bekomme Textinhalte. Also, was haben wir hier gemacht? Wir haben gerade die Elemente nach Tag-Namen Gras
bekommen, haben das erste Element und in eine Zeichenfolge umgewandelt und
speichern es dann und eine ganze Zahl, nachdem es auch in eine ganze Zahl umgewandelt wurde. Jetzt ist das Letzte, was der Netzpunkt ist. Und wie üblich, Double Dot Parse. Und wir können einfach ELT verwenden, aber Element wie zuvor erhalten, und dieses Element bei 0, die TextContent erhalten. Nun, ich denke, wir haben, wenn wir hierher zurückgehen und feststellen, dass wir Klassennetz,
Vorname und Nachname haben . Jetzt haben wir alle unsere Daten hier. Wir können mit ihnen arbeiten, wie wir wollen. Unser Ziel ist es also, den Mitarbeiter mit dem niedrigsten,
niedrigsten Gehalt und mit dem höchsten Gehalt zu finden . Also müssen wir Mitarbeiter finden. Und um das zu tun, das hat geschaffen, nachdem wir von dieser for-Schleife fertig sind, lassen Sie uns erstellen. Also integer max wird es erhalten, es wird eine ganze Zahl haben, die Wert bedeutete. Und das Minimum wird Integer diesen maximalen Wert nehmen. Und diese beiden ganzen Zahlen, Max und gemeint durch verantwortlich für die Suche nach dem höchsten und niedrigsten Bruttolohn. Also lassen Sie uns voran und beginnen mit unserem Code hier. Wir haben ganzzahlige min und max. Und wir gehen zu den Graselementen in der Grasliste. Und wie machst du das? Wir haben einfach zugeteilt, um Größe zu erfassen und zu starten. Also lassen Sie mich einfach zwei und die Indizes außerhalb erstellen, so niedrig gleich 0 und hoch auch gleich 0. Jetzt f, unser Gras, das bei i zu bekommen, ist weniger als Stunde Minimum. Wir müssen unser Minimum ändern. So Minimum wird Gras Punkt bekommen bei i und unser Tief wird gleich diesem i. Und natürlich müssen wir für das Maximum überprüfen. Also f Graspunkt bei i ist größer als das Maximum. Wir werden Max zuweisen, um gleich dem Grasgriff bei i zu sein,
und dasselbe wird gleich ich sein. und dasselbe wird gleich ich sein Nun, nachdem wir hiervon fertig sind, wir unser niedriges und hohes bekommen. Wir können einfach ausdrucken, nachdem wir diese for-Schleife bearbeitet
haben, wir können unsere Mitarbeiter ausdrucken. Um dies zu tun, würde einfach die System.out.print-Methode verwenden. Und wir werden FirstName und first_name.gov bei niedriger drucken. Dann werden wir Platz als der Nachname hinzufügen, aber auch niedrig. Und wir können den Mitarbeiter mit dem niedrigsten Bruttolohn hinzufügen. Und wir können es spezifizieren. Und natürlich, das Kreuz, aber gad bei niedrigen. Jetzt werden wir kopieren das gleiche genau ausgerichtet hier einfügen. Allerdings müssen wir jetzt für den hohen LastName Akt ich
auch als Mitarbeiter mit dem höchsten Gehalt von ausdrucken , und natürlich Graspunkt hoch ausdrucken. Nun, wenn ich diesen Code ausführe und mal sehen, was wir bekommen werden. Stephen Colbert ist der Angestellte mit dem niedrigsten Bruttolohn von 340. Cristiano Ronaldo ist der Mitarbeiter mit dem höchsten Bruttolohn von 300 Tausend. Wenn wir nun wieder hierher gehen, können
wir einfach feststellen, da wir nur vier Mitarbeiter haben, können
Sie einfach feststellen, dass dies 600 sind. Wenn wir nach unten 400.300 Tausend gehen, so ist dies die höchste und 340 ist die niedrigste. Und diese Informationen sind korrekt, wie Sie hier sehen können. Nun, eine andere Sache zu tun ist, nur
das Nettogehalt zu vergleichen , anstatt das Bruttogehalt wird genau das gleiche sein. Allerdings haben wir es jetzt mit Doppelbetten zu tun. Anstatt also unsere ganzen Zahlen ij,
das Minimum und das Maximum zu erstellen , werden
sie doppelt als doppelt und verglichen sie, als das niedrige und hohe wie üblich zu finden, dann drucken Sie einfach den ersten Nachnamen aus. Und natürlich muss er hier von Gras zu Netz zwei wechseln,
lassen Sie mich es einfach schnell machen. Also hier müssen wir doppelten,
doppelten Max haben und dann werden wir das Netz vergleichen. Natürlich müssen wir hier auch die darin vergleichen und natürlich geändert. Und hier auch so. Und schließlich Netz. Und nachdem wir von hier aus fertig sind, müssen
wir einfach hier auch modifiziert werden. Und mit dem niedrigsten Nettogehalt und höchsten Nettogehalt. Wenn ich diesen Code noch einmal durchführe, gehe
ich zu, dass Stephen Colbert der Angestellte mit dem niedrigsten Nettogehalt von 327 ist. Und Cristiano Ronaldo ist der Mitarbeiter mit dem höchsten Nettogehalt von 1881000. Also, wenn ich hierher gehe und lass mich noch einmal nachsehen. Hier haben wir das Nettogehalt ist 378. Wir haben 440. Und wir können sehen, dass dies der niedrigste ist. Und der höchste ist 288 Tausend. Nun, lassen Sie mich einfach das Nettogehalt ändern. Beeilen Sie sich hier, um gleich 44 zu sein. Und in diesem Fall, wenn ich noch einmal unterstrichen habe, werden
wir Richard Saul den Angestellten mit dem niedrigsten Nettogehalt von 44. Und wir können feststellen, dass dies jetzt das niedrigste Nettogehalt anstelle dieses 1227 ist. Und das ist es eigentlich für dieses Beispiel. Jetzt haben wir die Grundlagen gelernt, wie man Daten aus XML mit Java extrahiert. Jetzt, wann immer wir ein XML-Dokument haben, können
wir genau das gleiche anwenden, wie wir es hier getan haben. Und wir werden unsere Daten bekommen. Wir können sie in ArrayList speichern, können sie in einer Datei oder einer IRA oder alles, was wir wollen, speichern. Das ist also im Grunde und wir sehen uns im nächsten Video.
39. Json: Gehen wir nun zu JSON. Und vor allem werden
wir lernen, was JSON ist und wie lesen wir Daten aus dieser Art von Datei? So wie wir hier sehen können, haben
wir das Menü, das JSON Dokument. Und JSON steht für JavaScript Object Notation. Also lass mich einfach weitermachen und versuchen, hier unten zu gehen. So steht es für Java-Skript-Objekt-Notation. Und es ist eine selbstbeschreibende und leicht zu verstehen. So wie Sie hier sehen können, haben
wir Menü und in diesem Menü haben wir den ID-Wert und Pop-up. Im Pop-up haben wir diese verschiedenen Werte nach oben und unten, und nach oben und Dokument. Also lassen Sie uns weiter gehen und tiefer graben und die Syntax von JSON tun. Das erste, was wir tun werden, ist, ein Objekt nach dem anderen zu nehmen. Nehmen wir an, ich habe das genommen. Wir können sehen, dass wir den Wert hier oder einen Typ haben, und es wird von einem Wert gefolgt. Wie wir sehen können, haben wir den Namen, und in diesem Fall ist es die ID. Und es ist in doppelten Anführungszeichen, wie wir sehen können, und gefolgt von der Spalte und dann dem Wert dieser NAPE, also ID-Datei. Und dann haben wir auch den Namen. In diesem Fall ist es, es wird Wert genannt und der Wert dieser als Datei mit Großbuchstaben F Nun ist alles in geschweiften Klammern tatsächlich ein Objekt. Wenn wir also geschweifte Klammern definieren und hier oder einige Zeilen Code schreiben, sind dies ein Objekt. Wir können davon ausgehen, dass dies ein Objekt ist. Wenn wir nun eckige Klammern schreiben, zeigt
dies an, dass wir ein Array haben. Wie wir sehen können, enthält dies drei Elemente, so dass dieses Array drei Elemente enthält. Das ist also Objekt eins, Objekt zwei und Objekt drei. Nun gehen wir weiter und erstellen unser Java-Programm, so dass wir diese Daten oder Informationen aus unserer JSON-Datei extrahieren können. also Umalsoeinen Cent zu verwenden und die für uns in JSON verfügbaren Methoden zu verwenden, haben
wir eine Bibliothek, Entitäten, eine bestimmte Bibliothek und externe tatsächlich nicht in Java gebaut, also müssen wir
laden Sie es herunter. Gehen wir also weiter und gehen Sie zu Google und download.com. Und hier haben wir Jason das Glas herunterladen. Ich werde einen Link verlassen oder eine lebte die ganze Bibliothek und die Beschreibung. Jetzt haben wir unseren JSON. Bibliothek. Also lassen Sie mich hier zurück zu unserem Code. Und natürlich müssen wir es aus unseren Downloads extrahieren. Nachdem Sie unsere Bibliothek heruntergeladen haben, können
Sie zu unserem Projekt gehen, und in diesem Fall, diesem Projekt, rechten Maustaste auf den Gürtelpfad und konfigurieren Sie den Buildpfad. Hier haben wir unsere Bibliotheken und wir können sehen, dass wir keinen Pfad, keine hinzugefügten Bibliotheken haben. Also werde ich nur externe Gläser hinzufügen. Und lassen Sie mich auf den Desktop gehen. Innerhalb des Desktops haben wir tiefe JAR-Dateien. Dies ist JSON, so dass wir gerade apply and close hinzugefügt haben, und jetzt setzen wir so, dass wir jetzt JSON verwenden können. Lassen Sie mich einfach ein neues Paket speziell für JSON erstellen. Und in diesem Fall lassen Sie uns unsere erste Klasse erstellen und wir werden es Menü nennen. Also jetzt haben wir unser Klassenmenü und unser Datei-Menü, das JSON. Also lassen Sie uns mit dieser Datei beginnen. Lassen Sie uns einige Daten von hier extrahieren. Das erste, was wir tun werden, ist, wie üblich, unsere Hauptmethode zu
erstellen und natürlich durch die Ausnahme. Also, wenn wir eine Ausnahme und Typen werfen, Typ löst Ausnahme aus, bedeutet dies, dass
wir alle Ausnahmen auslösen, die hier auftreten können. Und natürlich meinen wir nicht die Adder oder das Cern, wir meinen nur, vielleicht Dateiausnahme oder so etwas. Also Datei gleich der neuen Datei. Und in diesem Fall haben wir Menü, dass JSON. Und natürlich müssen wir es wie gewohnt aus Java in das IO importieren. Jetzt können wir mit unserem Jason anfangen. Also das erste, was wir den Dateieingabestrom importieren werden. Also Dateieingabestrom und importiert, lassen Sie es uns nennen T, o. Und in diesem Fall, oder vielleicht kann ich es FIOS als Dateieingabestrom nennen und wie üblich Initialisierer erstellt. Also Eingabestrom, und es wird die Datei als Parameter nehmen. Dann folgt das JSON-Token. Und lass es mich einfach schreiben. Und dann reden wir darüber. Also lassen Sie mich es importieren. Und wie Sie hier sehen können, lassen Sie mich einfach Tokyo
eingeben gleich dem neuen JSON Falconer. Und in diesem Fall lassen Sie mich es einfach als Eingabe nehmen. Stream. Also das ist, was wir wollen und in diesem Gebäude FIS schreiben. Dies ist also der Eingangsstrom definiert. Und jetzt, da wir unseren Jason Toner haben, Wir können tatsächlich Daten aus dem Lager innen lesen. Also lass mich zurück zu unserer Speisekarte gehen, JSON. Und er, wie Sie sehen können, lassen Sie mich das einfach löschen. Und wir haben bereits gesagt, dass, wenn wir geschweifte Klammern haben, Dies ist ein Objekt. Wann immer wir eckige Klammern haben, ist
dies ein Array. Hier können wir sehen, dass dies ein Objekt ist und dies ein Objekt ist. Wie gehen wir damit um? Wir können einfach ein JSON-Objekt erstellen. Das JSON-Objekt, und das wird es benennen, wird es Objekt benennen, das dem neuen JSON-Objekt entspricht, und es wird die gesamte Token-URL als Parameter nehmen. So können wir Daten aus unserer JSON-Datei extrahieren, wenn wir ein Objekt haben. Lasst uns damit angefangen. Jetzt haben wir unser ganzes Objekt in diesem Objekt. Nun danach, lasst uns sehen was, was wir bereits hier auch haben. Jetzt können wir sehen, dass wir ein anderes Objekt haben, und dieses Mal haben wir den Namen, der Menü ist. Also, wie gehen wir damit um? Wenn wir diese Daten von hier extrahieren möchten, können
wir einfach ein anderes JSON-Objekt erstellen, da es auch ein Objekt ist. Und in diesem Fall nennen
wir es. Zum Beispiel, d. h., das wird natürlich gleich Objekten sein. Und wir werden benutzen, Entschuldigung, ich habe einen Gegenstand. Und wenn ich JSON, haben
wir das JSON-Objekt bekommen. Diese Methode wird uns also das Objekt und mit dem Namensmenü erhalten. Nun, wir haben auch, lassen Sie mich zurück und wie Sie hier sehen können, haben
wir die ID, wir haben den Wert und wir haben das Pop-up. Also lass mich einfach hier zurückgehen und es benennen. Dieser wird die ID sein. Und natürlich lassen Sie mich einfach
auch angrenzendes Objekt für den Wert und das Popup erstellen . Jetzt haben wir jetzt lassen Sie uns einige Daten extrahieren. Das erste, was wir extrahieren werden, lassen Sie mich zurück zu unserer Speisekarte, JSON. Und wir können deutlich sehen, dass wir die ID haben und wir den Wert haben, der definiert ist. Nun, wenn ich den Wert dieser ID extrahieren möchte, kann
ich einfach id dot,
get, string und decay ausdrucken , der PID ist. Jetzt, wie ich bereits sagte, hätte
ich dieses JSON-Objekt einfach als o erstellen und es verwenden können. Um die Daten zu extrahieren. Damit ich das entfernen kann. Und hier kann ich o schreiben und jetzt, wenn ich das mache, bekomme ich Phi. Nun, wenn ich will, lassen Sie uns einfach zurück zu Menü gehen, dass JSON. Wenn ich diesen Wert,
dieses Kapital F fünf möchte , kann
ich einfach GetString zurückgeben. Und in diesem Fall werde ich den Wert zurückgeben und ausführen. Wir holen eine Akte und Akte. Nun, wie wir hier sehen können, haben
wir unser Pop-up und in diesem Popup haben wir ein Objekt. Und in diesem Objekt haben wir den Menüpunkt, der ein Array von Objekten enthält. Also bis jetzt haben wir dieses Objekt und diesen Menüpunkt als Array. Also lass mich einfach hier zurückgehen und das erschaffen, was wir gesagt haben. Also brauchen wir ein JSON-Objekt und wir werden es nennen, wie gesagt. Lassen Sie mich zurück und einer von ihnen ist Pop up und der zweite ist,
sorry, lassen Sie mich das einfach löschen. Und dein Burke. Also hier ist einer von ihnen Sprichwort und der andere Menüpunkt. Also JSON-Objekt, Pop-up und Jason pro Tag. Und das ist Menüpunkt. Nun, nachdem
wir diese erstellt haben, können wir einfach dieses Pop-up und Dave, das Objekt dieses Popups, wie machen wir das? Wir können einfach schreiben, dass wir Pop-up gleich dot sein müssen. Rufen Sie JSON-Objekt ab. Wir werden das JSON-Objekt erhalten, in dem wir Pop-up haben. Danach werden wir das Array des Menüelements innerhalb Pop-up nehmen. Menüelement wird gleich sein, um das get JSON-Array hervorzuheben. Und wir brauchen den Menüpunkt. Und jetzt sind wir fertig. Wir haben unseren Menüpunkt. Wir können eine for-Schleife erstellen, die bei 0 beginnt und den Menüpunkt dieser Länge. Also Menüpunkt diese Länge. Und darin können wir einfach den Wert des Menüpunkts erhalten. Lassen Sie mich einfach ein JSON-Objekt für Devalue erstellen. Ich kann es draußen erschaffen. Also JSON-Objekt, Wert und Wert werden gleich dem Menüelement dot JSON-Objekt erhalten. Wir werden jedes Objekt hier holen. Dies ist also das erste, zweite, dritte Objekt. Also bei index i, dann einfach ausgedruckt. Wir werden den Wert ausdrucken, um Stärke dieses Wertes zu erhalten. Dann ist es Raum als Wert, dass getString von unplug. Und nun betrachten, so haben wir Abwertung und on-click. Wir werden beide Werte bekommen. Und jetzt, wenn ich das ausführe, werden
wir Datei,
Datei wie zuvor, neue erstellen,
neues Dokument nach Datei wie zuvor, neue erstellen, oben und oben und Dokument, schließen, Dokument schließen. Wie wir hier sehen können, haben wir gerade diese Werte von hier extrahiert. Und das ist es eigentlich, das ist eine allgemeine Idee über JSON und wie wir Daten aus JSON mit Java extrahieren können. Jetzt in den nächsten paar Videos werden
wir tiefer graben und zu JSON. Und wir werden
viel komplexere Beispiele bekommen und lernen, wie wir mit jedem einzelnen von ihnen umgehen können. Und wir werden sehen, dass sie gleich sind. Wir müssen sie jedoch verstehen und sorgfältig mit ihnen umgehen. Und das ist es für dieses Video. Wir sehen uns im nächsten Beispiel.
40. Wordpress: Lassen Sie uns nun ein weiteres Jason-Beispiel lösen. Dies ist WordPress Punkt JSON. Und dieses einfache Beispiel, lassen Sie mich fortfahren und eine andere Klasse in unserer JSON-Paketanweisung erstellen, Wort drücken. Beginnen Sie wie üblich mit der Erstellung unserer Hauptmethode, werfen Sie die Ausnahme und beginnen Sie dann mit unserer Datei, natürlich importieren Sie sie. Dann ist das WordPress Punkt JSON. Nun, da unsere Datei erstellt wurde, können
wir unser JSON-Token erstellen. Und natürlich fangen wir mit unserer Akte an. Eingangsstrom. Kann neuen Bildschirm mit der Datei als Parameter metafile. Danach werden wir das JSON-Token erstellen, sind wichtig. Das ist also alles, was JSON für die Bibliothek, die wir zuvor erstellt haben. Und natürlich nennen wir einen Dokumentarfilm, der dem
neuen Jason-Token und mit FIOS als Parameter entspricht . Jetzt gehen wir zurück zu unserem WordPress Punkt JSON und sehen, was wir hier haben. Also das erste, was wir bemerkt haben, ist WordPress Punkt JSON beginnt mit einem Array. Wie wir hier sehen können, haben wir die eckigen Klammern. Und um damit umzugehen, werden
wir eine Anzeige pro Jahr erstellen. Also, wenn ich zu unserer menu.html zurückgehe und sehe. Und so werden wir feststellen, dass, wenn wir das JSON-Objekt erstellt haben, dies ein Objekt ist, seit es
mit den geschweiften Klammern begonnen hat , die angeben, dass dies ein Objekt ist. Hier haben wir jedoch die eckigen Klammern. Wir müssen ein Array erstellen. Und um dies zu erstellen, können
wir einfach diesen JSON erstellen. Und nennen wir es. Bei a ist es gleich dem neuen JSON bei einer Token-URL als Parameter. Wie Sie bemerken können, JSON oder der Umgang mit JSON in Java ziemlich einfach. Es braucht nicht viel Zeit, und es ist unkompliziert. Also hat er unser Array neu erstellt. Lassen Sie uns nun einige Objekte erstellen. Also habe ich sie gerade Objekt eins und Objekt zwei genannt. Also Objekt, Objekt eins, Objekt zwei. Nun, natürlich, lass mich zurückgehen und mal sehen, hier haben wir. Zum Beispiel drucken wir einfach die ID und das Datum aus. Und mal sehen, was haben wir hier? Wir haben auch die Kategorien und die Tags. Also lassen Sie uns drucken. Wir haben gesagt, dass wir ID,
Datum, Kategorien und Tags ausdrucken werden. Wie Sie hier feststellen können, sind
Kategorien und Tags Arrays sowie ID- und Datumsobjekte. Also hier haben wir Objekt eins, Objekt zwei, und hier haben wir JSON-Objekt. Wir haben es nicht importiert. Und wir haben einen Fall, wie gesagt. Also haben wir die Kategorien und wir haben auch die Tags, denke ich. So. Ja, im Grunde Kategorien und Tags. Nun, lassen Sie uns voran und erstellen Sie unsere Objektübertragungsobjekt ein wird gleich einem Punkt JSON-Objekt sein. Wir haben diese Master-Methode. Und wie wir sehen können, müssen wir hier einen Index hinzufügen. Also, wenn ich Index 0 hinzufüge, wird
dies uns das erste Objekt geben. Und in diesem Array, wie wir sehen können, ist
dies das erste Objekt. Dies ist alles, was das erste Objekt ist. Also hier haben wir, wir öffnen die geschweiften Klammern und er wird es schließen. Und wie wir sehen können, ist
dies nur ein Objekt, also sind alle Daten hier in diesem einzelnen Objekt. Jetzt gehen wir zurück. Und wenn ich voran gehen und drucken, lassen Sie mich einfach den Ausweis ausdrucken. Wenn ich die ID möchte, können Sie einfach verwenden. Lassen Sie mich nur darauf hinweisen, dass dies die Idee ist und Objekt eins verwenden. Wie gesagt, ist dies Objekt ein Punkt. Wir können das Ende kriegen. Und mit dieser Methode werden
wir eine ganze Zahl erhalten. Und wir haben die ID als Parameter eingegeben. Und jetzt, wenn ich das mache, werde
ich die Idee bekommen, und das ist 157538. Und das ist genau die Idee. Nun, wenn ich auch das Datum extrahieren möchte, kann
ich einfach schreiben, dass das Datum ist. Und Gebrauchsgegenstände waren noch nicht. Lass mich zurückgehen. Dies ist also eine Zeichenfolge, so dass String erhalten und der Parameter eine Zeichenfolge des Datums ist. Jetzt lasst uns weglaufen. Wir werden die ID bekommen und das Datum ist 2017, und natürlich die Zeit. Dies ist also im Grunde zum Extrahieren von Objekten aus einem Array. Und hier verwenden wir die GetInt und
GetString Methoden, da wir wissen,
was wir in Bezug auf die ID und das Datum extrahieren werden extrahieren. Und das ist in diesem Fall eine hilfreiche Methode. Jetzt gehen wir scrollen hier nach unten wir unsere Kategorien und Tags haben. Lassen Sie uns zuerst unsere Kategorie erstellen. Das erste, was wir tun werden, ist, mich zu lassen. Gehen Sie einfach hier und Kategorie wird gleich sein, wie wir gesagt haben, Objekt ein Punkt JSON-Array erhalten. In diesem Fall bekommen wir die LDA und was auch immer wir haben die Kategorien. Und jetzt haben wir unseren Tag erschaffen. Wenn wir die Tags auch Objekt ein Tags erstellen wollen, dot get JSON fügt a und b. Wir haben Tags. Jetzt, da wir wissen, dass wir nur ein Element in dieser ID haben, kann
ich einfach verwenden, ich kann es einfach ausdrucken tatsächlich, also Kategorien. Und ich kann die Punkt-Get-Methode verwenden und wir werden die ganze Zahl bei 0 bekommen. Danach drucken wir den Tanz aus. Und in diesem Fall wissen
wir, dass wir mehr als ein Tag haben. Also werden wir eine for-Schleife erstellen, die bei 0 beginnt und die Länge endet. Tut mir leid, kennzeichnet diese Länge. Und das ist im Grunde, ich kann es jetzt ausdrucken. Also Tags, die bei i Space enden. Nun, wenn ich das laufen, Ich werde die ID zu bekommen ist, das Datum ist, und Kategorien haben wir 6132 und dann von den Tags gefolgt, wir haben zwei Hunde, 17, 986 bis 98. Und das ist eine allgemeine Idee über dieses Beispiel, dass wir hier zurück
gehen und sehen, was wir übrig haben. So haben wir zum Beispiel, also sind diese die gleichen wie zuvor. Dies wird geändert oder Sie können es als ID oder ein Datum verwenden. Lassen Sie uns dies jedoch verwenden. Hier haben wir den Guide und Innenführung, den ich gebogen habe. Wir wissen also, dass, wenn wir geschweifte Klammern verwenden, dies bedeutet, dass wir ein Objekt im Inneren haben. Also haben wir Objekt eins, das ein JSON-Objekt erstellt hat, da wir in diesem Fall ein anderes Objekt haben, das wir es nur benennen, gerendert. Und gerendert wird gleich Objekt ein Punkt JSON-Objekt erhalten. Und in diesem Fall ist
das benachbarte Objekt die Führung. Und lassen Sie es mich einfach versuchen. Führer. Und danach kann
ich einfach einen ausgedruckten verwenden. Also gerendert gleich gemacht, dass bekommen, lassen Sie mich hier zurück und gerendert. Wir können die GetString-Zeichenfolge verwenden und der Schlüssel wird in diesem Fall gerendert. Und jetzt, wenn ich das durchführe und mich zuerst lasse. Also hier wurden wir gerendert und der Wert von gerendert. Also, das ist es im Grunde. Und so können wir JSON verwenden und
Daten aus Jason extrahieren und sie und unser Java-Programm verwenden. Jetzt im nächsten Video werden
wir einen Blick auf ein anderes Beispiel werfen. Und es ist etwas komplizierter, aber die gleiche Idee oder die gleichen Konzepte gelten immer noch für jedes benachbarte Dokument. So sehen wir uns dann.
41. Glossary: Hallo und willkommen zurück zu Ihnen Jason Beispiel. Und in diesem Fall haben wir Glossar, dass JSON. Und das ist unsere Akte. Und wir können sehen, dass dieses Beispiel ein wenig komplizierter ist als die anderen, da wir einige Objekte haben, die verschachtelt sind oder innerhalb anderer Objekte, wie wir hier sehen können, haben wir die Liste. Innerhalb der Glasliste haben
wir ein Objekt, und dieses Objekt befindet sich innerhalb des letzten div, und Glas div befindet sich im Glossar und so weiter. Also lassen Sie uns jetzt unsere JSON- oder Java-Datei erstellen. Und das ist unsere Klasse. Nennen wir es Glossar. Und lasst uns wie gewohnt anfangen und löst die Ausnahme aus. Dann beginnen Sie mit unserem phi, phi gleich o und Glossar, dass JSON. Und jetzt können wir unser JSON-Token erstellen. Und das ist gleich nu Jason. Und es tut mir leid. Die müssen wir unseren Dateieingabestrom erstellen. Völlig vergessen. Und
Eingabedatei-Eingabestrom . Und danach geben
wir diesen Jason-Vortrag, diese FIS als Parameter. Und danach können wir mit unserem JSON-Code beginnen. Das erste, was wir hier bemerken können, ist das Erstellen des JSON-Token oder ist, dass n, unser Glossar, wir ein Objekt haben. Also beginnen wir mit der Erstellung des Objekts. Das erste, was ist JSON-Objekt. Und in diesem Fall nennen wir es das Objekt gleich dem neuen JSON-Objekt. Und es wird das Dokument nehmen. Danach. Wir können unsere anderen Objekte erstellen, damit wir sehen können, dass wir das Glossarobjekt haben. Dann haben wir das Cluster-Objekt, Glaslistenobjekt plus N3 und Glanz taub. Also lassen Sie uns sie einfach hier erstellen, alle auf einmal. Also haben wir ein Glossar. Dann der Verlust, gefolgt von dem Glas, dann die Gesetzlosen und Baum, und schließlich das Glas, taub. Und so sind das unsere Objekte. Und unser Ziel ist es, einige der Elemente hier aus einigen der Daten auszudrucken. Und wir müssen das bei einem ausdrucken. Also lassen Sie mich einfach dieses Array und JSON erstellen. Einen Tag. Und plus c. auch. Das ist also im Grunde jetzt können wir mit dem Extrahieren von Daten beginnen. Das erste, was wir extrahieren werden, ist der Titel. Wie wir hier sehen können, haben wir den Titel. Das ist also nach dem Erstellen des Objekts. Das erste, was wir tun werden, ist das Glossar zu nehmen, um gleich dem ersten, was
das Objekt und USD zu sein , um JSON-Objekt zu erhalten. Und wir müssen ein Glossar bekommen. Und danach, nachdem Sie dieses Glossar-Wochenende bekommen haben, drucken
Sie einfach den Titel,
den Titel als und das Glossar aus. Natürlich. Glossar. Und bekommen, wir werden die Zeichenfolge mit dem Schlüsseltitel zu bekommen. Und wenn ich das durchführe, lassen Sie uns nachsehen. Dies ist der Titel als Beispiel Glossar. Wenn wir hier zurück gehen, ist der Titel tatsächlich Beispiel x, also ist dies korrekt. Nun, nachdem wir dieses Objekt erstellt
haben, können wir feststellen, dass Glanz live ein anderes Objekt ist. So können wir Glossar verwenden und die Objekte aus dem Glossar extrahieren. Also haben wir plus f. In diesem Fall wird
es gleich Glossar Punkt sein. Holen Sie das JSON-Objekt. Und in diesem Fall haben wir, lassen Sie mich zurückgehen und es richtig versuchen. Wir haben Glastod. Und das ist eigentlich Glas div. Jetzt haben wir unser Objekt plus live. Wenn zum Beispiel für eine zusätzliche, extrahieren Sie den Titel. In diesem Fall kann ich einfach
den zweiten Titel als
und denGetString und den Titel ausdrucken den zweiten Titel als
und den . Fertig. Wir werden den zweiten Titel S bekommen, und das ist hier der Fall. Jetzt können wir auch feststellen, dass wir hier ein anderes Objekt haben, das verlustfrei ist. Also machen wir genau das Gleiche hier. Also plus L2 wird gleich dem Punkt JSON-Objekt sein. Und wir haben Plus. Und lassen Sie mich einfach etwas von der Glasliste drucken. Eigentlich haben wir nichts drinnen. Lassen Sie mich einfach nachsehen. Hier. Wir müssen ein anderes Objekt erstellen, das für den Glanzeintrag ist. Und in diesem Fall Glas. Und drei werden gleich Glasliste sein, die JSON-Objekt plus N3 erhält. Und danach gehen wir zurück. Wir können sehen, dass innerhalb Glas und zwei, wir haben ID und in Glas Begriff, lassen Sie uns drucken, nur um sicherzustellen, dass wir auf dem richtigen Weg sind. Also müssen wir drucken. Die ID und verwenden LAS und Baumpunkt erhalten. Und lasst uns hierher zurückgehen, um zu überprüfen, dass die ID eine Stärke von get string ist. Und das ist die Idee. Jetzt rennen. Wir werden ID als g, m, l bekommen, und das ist richtig. Und die andere Sache ist, lass es mich einfach hier benutzen. Und wir müssen Bluster extrahieren. So drehen und verwenden Sie Glas und noch einmal. Aber getString wie üblich, da dies eine Zeichenfolge ist. Und letztes Jahr werden
wir GlusterFS bekommen, Standard Generalized Markup Sprache. Und das ist auch richtig. Jetzt sind wir zu einem Punkt gekommen, an dem wir Daten tatsächlich aus dieser Phase extrahieren. Jetzt können wir sehen, dass Explosionstod ein weiteres Objekt ist. Also haben wir hier bereits Glastod als Objekt. Und wir können einfach genau das Gleiche tun wie zuvor. Also Glas, das wird gleich plus und behandeln, die JSON-Objekt und in diesem Fall Glas erhalten. Und lasst uns einfach etwas von dir extrahieren. Lass mich sehen, was los ist. Und ändern Sie den Typ von, es tut mir leid, hier müssen wir ein Objekt erstellen, JSON-Objekt erhalten. Und jetzt sind wir gut. In einem Glasnerv. Wir haben die Para. Also lassen Sie mich einfach
als und plus den GetString ausdrucken . Und in diesem Fall werden
wir einfach ausdrucken, was immer wir Empire haben. Führen Sie diesen Code aus. Wir werden eine Meta-Markup-Sprache erhalten, die verwendet wird, um Markup-Sprachen wie Notizbuch zu
erstellen. Und das ist auch richtig. Das letzte, was wir tun werden, ist das Array zu verwenden, das wir zuvor erstellt haben und g,
m, l XML hier ausdrucken . Also haben wir das schon. Das ist also auch glänzend, es ist ein Update und lassen Sie mich es hier verwenden. Also Glas C auch, und in diesem Fall wird
es gleich einem Plus der get JSON bei ein. und in diesem Fall ist
dies plus C auch. Und lassen Sie uns eine for-Schleife erstellen, die durch alle Elemente innerhalb des Arrays geht, beginnend mit i gleich 0 und endend mit Glas. Auch diese Länge. Und natürlich können wir auch plus C ausdrucken. Und wir werden die Zeichenfolge bei Index I bekommen und lassen Sie mich hier ausdrucken, nur um zu wissen, was wir weg sind. Und so ist das ein Plus c. Auch bei a. Und natürlich, lassen Sie mich das anpassen und einige Leerzeichen noch einmal laufen. Wir werden auch bei einem GM L und XML glänzend werden. Und das ist im Grunde, dies wird als eine komplizierte JSON-Datei zum Extrahieren von Daten und Java betrachtet. Und es ist tatsächlich die gleiche Idee wie zuvor. Wir müssen nur der Straße folgen, die neu erstellt wurde. Wenn wir also geschweifte Klammern sehen, erstellen
wir ein Objekt. Wann immer wir eine eckige Klammern sehen, erstellen
wir ein bei einem und so weiter. Also, jetzt haben wir einige der Daten aus dieser Datei extrahiert, und das ist es im Grunde für dieses Video. Im nächsten Video werden wir noch ein Beispiel machen. So sehen wir uns dann.
42. Quiz Beispiel: Nun gehen wir zum letzten Jason-Beispiel über. Und in diesem Fall haben
wir ein Quiz, dass JSON-Datei. Zunächst einmal, lassen Sie mich einfach unsere Klasse erstellen. Das ist also unsere Java-Klasse wie gewohnt. Und wir haben Quiz, Entschuldigung, es hat nur Schlüsselname umgestellt und fertig. Und wie üblich, erstellen Sie eine Hauptmethode, die Ausnahme. Und dann erstellen Sie die Datei. Also, wenn phi gleich kaufen und wer der benachbarte ist, dann VHD-Dateieingabestrom,
Stream , und erstellen Sie dann das JSON-Token. Und in diesem Fall nennen
wir ein Token, das dem
neuen JSON-Token a und phi S als Parameter entspricht . Wenn Sie hierher zurückgehen, können
wir nicht sagen, dass dies ein Objekt ist. Das erste, was wir tun werden, ist das Objekt zu JSON-Objekt zu erstellen. Objekt gleich dem neuen JSON-Objekt. Tut mir leid, hier können wir einfach Detox Center hier benutzen. Und wir sind gut. Jetzt haben wir unser Objekt. Das ist unser Hauptobjekt. Und wenn wir noch einmal zurückgehen, können
Sie sehen, dass wir das hier haben. Dies ist das erste Objekt oder das erste Element innerhalb des Objekts, und dies ist das zweite Objekt. Also, wie gehst du damit um? Wir können einfach ein Quizobjekt erstellen. Und in diesem Quizobjekt werden
wir vom Hauptobjekt nehmen, um JSON-Objekt zu erhalten, und wir brauchen das Quiz. Dann haben wir,
wie gesagt, auch den Export. Und natürlich in der Suche haben wir Frage eins und Frage eins und die Mathematik. Also im Quiz haben wir Verderb und Mathematik. Und in diesem Fall haben wir Frage eins und Sport und Frage eins und Frage zwei, m. Also haben wir anspornt und q eins, q zwei. Und natürlich, jetzt, da wir
unsere JSON-Objekte haben , mit denen wir beginnen können, ist gleich dem get JSON-Objekt. Wir werden das JSON-Objekt mit Sport bekommen. Und danach können wir es bekommen, also sind wir jetzt hier und der Sport. Und im Sport haben wir Q1, das ist auch ein Objekt. So ist Q1 gleich, um das get JSON-Objekt und Q1 zu erkennen. Jetzt sind wir innerhalb Q1, Wir haben eine Frage und Optionen und gefolgt von der Antwort. Also lass mich einfach tauchen oder die Frage ausdrucken. So wie wir die Frage als d zuerst gesagt. So können wir die Frage einfach als schreiben. Und dann können wir für ein riesiges Q1 schreiben, das sprang und Frage. Aber jetzt, wenn ich das mache, werde
ich die Frage bekommen. Das heißt, die Frage ist, welcher Teamname in der NBA korrekt ist. Danach kann ich einfach auch einen Süchtigen erstellen, da diese Optionen in diesem Array enthalten sind. Also Jason, und lassen Sie mich es Optionen gleich Q1 nennen. Sie erhalten JSON-Array. Und wir haben Optionen. Danach können wir unsere for-Schleife erstellen, beginnend bei Index i gleich 0 und endet Optionen dieser Länge. Jetzt können wir einfach alle Optionen ausdrucken. Also haben wir Option i plus eins und gefolgt von der Option selbst. Also plus Option, die String und bei Index
erhalten, um dies nur zu überprüfen. Wir werden bekommen, denn in S, welches richtig ist er Name in NBA, werden
wir Standard-Optionen danach erhalten. Jetzt können wir die Antwort ausdrucken. In diesem Fall wird die Antwort einfach beantwortet, wie und gefolgt von der Antwort selbst. Also Q1, das wird getrunken. Ansager. Und jetzt, wenn ich diesen Code noch einmal durchführe, werden
wir die Antwort als Huston-Rakete bekommen. Nun, danach haben wir auch die Frage eins und Frage zwei, n, die Mathematik. Also lasst uns weitermachen und unser mathematisches Objekt erstellen. Masse wird gleich sein, wie wir sagten, war das get JSON-Objekt. Und in diesem Fall haben wir Mathe. Und danach können wir zurück in die Mathematik gehen. Wir können sehen, dass wir in Mathematik zwei Objekte haben, das ist Q1 und Q2. So können wir einfach erstellen Q1 wird gleich einem mathematischen Punkt, erhalten JSON-Objekt als Q1. Und natürlich, q gleich der gleichen Sache neben Q2 sein. Danach können wir mit jeder Frage gleichzeitig arbeiten. Also das erste, was wir als drucken werden, die erste Frage als und dann gefolgt von der Q1, die bekommen, sorry es String bekommen. Und wir werden die Frage selbst bekommen. Danach werden wir viele Optionen speichern und hinzufügen. Also Optionen, wir werden, es tut mir leid, hier werden wir Optionen Q1 Punkt schreiben JSON-Array bei Optionen. Und dann, nachdem wir dies bei einem erstellt
haben, können wir einfach unsere for-Schleife wie zuvor erstellen, beginnend bei 0 und Optionen hinzufügen, die Länge als das Drucken jeder Option. Also Optionen, die GetString, dass ich indizieren, dass wir die Antwort ausdrucken werden. Also die Antwort als und natürlich gefolgt von P1 Punkt getString unsicher. So, jetzt das Feuer und verwerfen gehen, um die folgenden zu bekommen. Also die Frage ist, welcher ist richtig, dass er Name in NBA? Dies ist der erste Teil. Zweiter Teil die Frage als fünf plus sieben gleich, wir haben 10111213 und die Antwort ist 12. Und in diesem Fall haben
wir immer noch die Frage und Mathematik. Also kann ich einfach die zweite Frage schreiben. Und um Q2 zu sein, dass GetString-Frage. Und in diesem Fall nach dem Schreiben der Frage können
wir
nach dem Schreiben der Frageauch die gleiche Option verwenden. Und es wird gleich Q2 sein, die get JSON, fügen Sie ein. und natürlich, Optionen, die Sie vor Schleife wie zuvor erstellen müssen. Und die gleichen Grenzen. Optionen, die Länge. Dann drucken Sie alle Optionen aus, die getrunken werden. Und danach können wir die Antwort schreiben oder die Antwort ausdrucken. Also ist die Antwort und
drucken Sie q2 dot Antwort. Danach. Lassen Sie mich diesen Code noch einmal ausführen. Das ist also für das erste Quiz. Und dann haben wir die Mathematik. Die erste Frage ist fünf plus sieben. Die Antwort ist also 12. Die zweite Frage ist 12 minus acht, die Antwort ist vier. Nur um sie klar zu machen, können
wir das einfach teilen. Nachdem wir von diesem fertig
sind, können wir einfach etwas gleich ausdrucken. Und natürlich können wir hier eine Schlange überspringen. Und danach. Und nach der ersten Frage können
wir auch ausgerichtete Lauf skalieren. Wir werden das kriegen. Das ist also die erste Frage. Die Frage ist also, welche? Wie immer? Und dann haben wir die Mathe-Mädchen und diesen Fall haben wir zwei Fragen. Dies ist also die erste Frage, gefolgt von der zweiten Frage, wie wir hier sehen können. Das ist also im Grunde für JSON. Wir haben gelernt, wie wir Daten extrahieren können und wie sie in unserem Java-Code verwendet werden können. Geschrieben immer gesagt, diese Daten und fügen Sie Tage weniger oder etwas, was wir wollen. Wenn wir sie zum Beispiel als String bekommen haben und sie direkt ausdrucken. Aber wir könnten nur dann das haben und es in einer Schnur speichern, dann tun, was wir wollen. Wir können es ausdrucken und modifizieren. Oder wir bekommen einfach einige ganze Zahlen, fügen sie zusammen und erhalten den Durchschnitt von etwas, zum Beispiel. Und das ist diese JSON-Datei oder ein Dokument, funktioniert genau wie jede andere Datei. Wir können tun, was wir wollen, mit den Daten, sobald wir extrahiert und richtig Weg. Und das ist im Grunde für JSON. Mit diesem Gesagten ist dies das Ende dieser Blüte. Wir sehen uns im nächsten.
43. Projekt: Unser Projekt besteht also darin, ein Konto für Schüler oder Ausbilder zu erstellen. Dies ist unsere Hauptmethode und lassen Sie es sehen und Sie müssen
die Konto-Klasse Schüler und Lehrer als Kinder dieses Eltern-Klassen-Konto erstellen . Jetzt gehen wir weiter und sehen, was diese Klasse macht. Also, wenn wir voran gehen und den Code ausführen und wir Schüler oder Lehrer bekommen. Also natürlich sind wir Studenten. Und uns bitten, unseren Vor- und Nachnamen
als Hauptcomputer einzugeben . Und G. Und ich sollte meine Kurse besuchen. Zum Beispiel, sagen wir, ich nehme CoA zu einem, Englisch 101 und Physik. Um zu gehen. Nun, mein Konto ist erstellt, hatte Gewerkschaften Student, meine ID ist eine wichtige Informatik-Kurse. Und um uns zu bitten, es erneut zu versuchen. Versuchen Sie es noch einmal. Geben Sie ja ein. Nehmen wir an, wir sind jetzt angewiesen. Vor- und Nachname. Alex, das Department, mal sehen. Also die Kurse, die ich unterrichte, sagen wir zwei. Und so ist dieses Konto auch Alexei Lehrer erstellt, Abteilung Finanzen Kurse lehren diese und ohne eine Idee, weil der Lehrer nicht über 90. Wenn ich nun versehentlich die Eingabetaste drücke, erhalte
ich eine ungültige Eingabe. Wenn ich es
zum Beispiel noch einmal versuchen möchte , versuchen Sie es erneut. Kleinbuchstaben. Nehmen wir an, ein Student zuerst und zuletzt. Zum Beispiel, ein Major. Angenommen, Elektrotechnik und Kurse zu einem ELE D03. Und dieser Bericht wird auch erstellt und die Idee ist jetzt, da wir jetzt Studenten sind, Deontologie. Und schließlich, wenn wir zum Beispiel versehentlich tippen, wird ungültige Eingabe erhalten, um es noch einmal zu versuchen. Wenn wir es also nicht noch einmal versuchen möchten, geben Sie einfach Nein ein. Und das ist das Ende des Programms. Nun, dein Schüler und Ausbilder. Zunächst einmal haben wir mit Studenten angefangen. Wir haben eine Klasse und wir haben einige Methoden hier. Zuallererst müssen Sie einen Konstruktor mit einem Objekt Student erstellen. Und dann müssen wir die wichtigsten und setzen Kurse und Lehrer Klasse. Wir haben den Konstruktor, um nur zwei Parameter zu nehmen. Hier haben wir drei Parameter, wir haben die ID und wir haben zwei Methoden, setzen Kurse und setzen Abteilung. Und wir haben auch andere, wenn dies eine ungültige Eingabe ist und während wir etwas anderes als Ja oder Nein eingeben, fragen
wir ständig das Programm und wir bitten den Benutzer, es erneut zu versuchen. Das ist es also für das Projekt. Und ich hoffe, Sie genießen es und sehen uns im nächsten Video.
44. Zusammenfassung: Das ist also das Ende der Klasse. Zuallererst sprachen wir über Vererbung und Polymorphismus. Dann gingen wir zur Rekursion und einige, lösten einige Probleme in diesem Thema. Dann sprachen wir über das Sortieren und Suchen von Algorithmen. Und natürlich haben wir am Ende einige Probleme zu jedem Thema gelöst. Und wir haben unser Projekt. Also das ist es für diese Klasse. In der nächsten Klasse werden wir über XML- und JSON-Parsing sprechen. Wir haben gelernt, JSON und XML mit Java zu analysieren. Und dann reden wir über Stapel und Warteschlangen und verwenden sie in unserer St. Louis und doppelt verknüpften Liste. Und schließlich werden wir über Sammlungen Klasse sprechen und wie zu verwenden, verwenden
Sie es in Java. Ich hoffe, diese Klasse war von Vorteil. Und wir sehen uns in der nächsten.