Stack und Queue in Java (Collections #2) - Java Programmieren Lernen - 40

preview_player
Показать описание
Stack und Queues in Java- zwei wichtige Datenstrukturen, mit denen du Stapel, bzw. Warteschlangen simulieren kannst.

0:00 Einleitung
0:10 Stack-Theorie
0:47 Stacks in Java erstellen
1:10 Push(), Peek() & Pop()
2:37 LIFO-Prinzip
3:10 Queue-Theorie
3:41 Queues erstellen
3:58 Add(), Peek() & Poll()
5:02 FIFO-Prinzip
5:17 Challenge für dich
5:46 Schluss

📚Das könnte dich auch interessieren:

Stacks arbeiten nach dem LIFO-Prinzip, das heißt, dass das letzte Element, dass hinzugefügt wurde, ist das Erste, das wieder entfernt wird (Stapel). Dagegen arbeiten Queues nach dem LIFO Prinzip, das heißt, das erste Element, dass hinzugefügt wurde, wird auch als erstes wieder entfernt (Warteschlange).

Stacks und Queues können für den Anfang kompliziert erscheinen... aber ganz sicher wirst du es trotzdem verstehen! :) Wenn du neben dem #Tutorial mit mir mitmachst, Gratulation! Dann wirst du Stacks und Queues wirklich verinnerlichen!

Ich hoffe du hast Spaß an diesem Stack- und Queue-Tutorial! Lass mich in den Kommentaren wissen ob dir dieses Video geholfen hat, Stacks und Queues besser zu verstehen!

============
============
============

▬👇🏻Wichtige Links👇🏻 ▬▬▬▬

▬✨Über diesen Kanal✨ ▬▬▬▬
Du bist Student oder Schüler und möchtest die Programmiersprache Java Lernen, weißt aber nicht wo du anfangen sollst? Dann bist du auf diesem Kanal genau richtig!

Du findest auf diesem Kanal einen Leitfaden, der dir dabei hilft als Java Anfänger Schritt für Schritt Java zu lernen. Ich weiß, dass das nicht immer leicht ist und gebe mein Bestes, dir das Ganze so gut wie möglich zu erklären :) Viel Spaß!!

Jonas Keil❤

#Programmieren #Java

PS: Einige der Links in dieser Beschreibung sind Affiliate-Links, von denen ich eine Rückvergütung erhalte :)

🎶Musik aus dem Video:
"Dreams" by LostSky
NoCopyRightSounds:
Рекомендации по теме
Комментарии
Автор

Ich habe noch niemanden gesehen, der das sooo gut erklärt. Besser als man Informatik Lehrer!

hihihi-brawlstars
Автор

Ich bin ehrlich, wir arbeiten zwar mit BlueJ an meiner Schule, was sich ziemlich mit deiner Entwicklungsumgebung beißt. Aber dennoch muss ich sagen, dass deine Videos mir echt durchs Abitur helfen. Mögest du mehr Reichweite im deutschen Raum bekommen, deine Videos sind einfach unglaublich gut <3

iikomaa
Автор

Deine Videos sind bei weitem die Besten deutschen Java tutorials

nickwerner
Автор

Ich hab gerade 1h darüber gelesen in einem Buch. Grundkonzept verstanden. Aber durch deine Veranschaulichung weiß ich jetzt auch wofür ich es brauche und der aha Moment hat eingesetzt! 🤣🔥

ancy
Автор

❤Abonniere um kein weiteres Video zu verpassen:
📢Trete dem Discord Channel bei und werde teil der Community! :
🚀Mit dieser Playlist wirst DU zum Java-PROFI:

Beispielcode für Queue:
Scanner scan = new Scanner(System.in);
int counter = 0;
Queue<String> kasse = new LinkedList<>();

while(true) {
String pushOrPoll = scan.next();

System.out.println("Länge der Schlange: " + (kasse.size() + 1));

if (pushOrPoll.equals("p")) {
String s = "Person" + counter;
kasse.add(s);
counter++;
} else if (pushOrPoll.equals("o")) {
if (kasse.poll() != null) {
System.out.println("Kunde bedient");
}
} else if (pushOrPoll.equals("i")) {
System.out.println(kasse);
}
}

JonasKeil
Автор

Vielen dank. Es war echt kurz und knapp aber trotzdem ausführlich und verständlich 💯

htethtet
Автор

perfekte erklärung und perfektes video vor meiner info lk klausur

oden
Автор

So jetzt post ich endlich auch mal was, vielen lieben Dank für deine tollen Tutorials:

import java.util.Scanner;
import java.util.Stack;

public class StackQueueAufgabe {

public static void main(String[] args) {
// Stack
Stack<String> kochbuch = new Stack<>();
kochbuch.push("Stardew Valley");
kochbuch.push("Japan Kochbuch");
kochbuch.push("Gesunder Darm");
kochbuch.push("Seelenwärmer Suppen");

System.out.println();

System.out.println("Das sind alle Kochbücher: " + kochbuch + "\n");
System.out.println("Das erste Kochbuch das auf dem Stapel landet ist: " + kochbuch.get(0));
System.out.println("Das ist das zuletzt drauf gelegte: " + kochbuch.peek() + "\n");


System.out.println("Wir lesen das oberste Buch und legen es weg. Merken uns aber das es weggelegt wurde.");
String seelenWaermer = kochbuch.pop();
System.out.println("Was wurde weggelegt?: " + seelenWaermer);

Scanner scan = new Scanner(System.in);
String antwort;
boolean weiterlesen = true;

System.out.println("\nWeiter mit den restlichen Büchern:\n");
while (weiterlesen) {
System.out.println("Was ist das nächste Buch auf dem Stapel?: " + kochbuch.peek());
System.out.println("Willst du das lesen? y/n");
antwort = scan.nextLine();
if (antwort.equals("y")) {


} else {
System.out.println("Ok, dann legen wir " + kochbuch.peek() + " weg.");
}
kochbuch.pop();
if (kochbuch.empty()) {
System.out.println("Das wars, alle Bücher durchgeschaut.");
weiterlesen = false;
}
}
}
}

diekleeneausderschweiz
Автор

Hammer Video! Du kannst richtig gut erklären. Danke dafür

clotte-dlkq
Автор

Danke für das Video, hat mir sehr geholfen. Vorallem die Beispiele haben mir super gefallen :D

cubix
Автор

ich finde aufjedenfall deine beispiele immer sehr unterhaltsam :, D

ajmg
Автор

Um Stackobjekten etwas mehr Liebe zukommen zu lassen, habe ich mich bei der Challenge für diese entschieden :) Dabei habe ich ein kleines Spiel programmiert, bei dem man drei Mal erraten muss, welche Zahl zwischen 1 und 10 der Computer zufällig gewählt hat. Die Zahl, für die man sich entscheidet, muss man bestätigen. Alternativ kann man den Spielzug rückgängig machen (da kommen Stacks ins Spiel). Leider filtert YouTube meine Kommentare, bei denen ich den Code von meinem GitHub Profil verlinke, immer raus. Deshalb hier doch in Kommentarform:

package youTube.keilJonas;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
import java.util.Stack;

public class RateDieComputerZahl {

public static void main(String[] args) {

beim Zahlenraten!!!\n\nDein Gegner ist der Computer.\nRate, welche Zahl zwischen 1 und 10 dieser in der Runde genommen hat.\nSobald du drei Mal richtig lagst, ist das Spiel vorbei :)\n\n");

Scanner sc = new Scanner(System.in);

Stack<Integer> spielerZahlen = new Stack<>();

int[] computerZahlen = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Random rnd = new Random();
int computerWahl = 0;

int erfolgreichGeraten = 0;
int runden = 1;

gameloop: while(erfolgreichGeraten < 3) {

spielZug: while(true) {

try {


waehltest also die " + spielerZahlen.peek());

(eingabeOkay()) {
spielZug;
else {
um die vorhrige Eingabe rueckgaengig zu machen, wird die letzte Benutzereingabe vom Stack entfernt

spielZug;


} catch (Exception e) {
= new Scanner(System.in);
Fehler bei der Benutzereingabe... bitte erneut versuchen.");
}

} // Ende spielZug

// der Computer pickt random ein Arrayelement zwischen index 0 und 9
computerWahl =

// entsprechen sich die Wahl des Computers und des Spielers, gibt es einen Punkt!
if (computerWahl == spielerZahlen.peek()) {
erfolgreichGeraten++;
System.out.println("Super, richtig! Der Computer und du habt beide die " + computerWahl + " genommen.\nDu hast " + erfolgreichGeraten + " Punkte.\n");
} else {
falsch... der Computer hat die " + computerWahl + " genommen.\n");
}

runden++;

} // Ende gameloop

System.out.println("Du hast " + runden + " Versuche gebraucht.");

switch(runden) {
case 3: System.out.println("Mega gut!!!\n"); break;
case 4: System.out.println("Richtig gut!!!\n"); break;
case 5: System.out.println("Sehr gut!!!\n"); break;
case 6: break;
case 7: System.out.println("Ziemlich gut!!!\n"); break;
default: System.out.println("Ist okay...\n");
}

List<Integer> zahlenHistorisch = new ArrayList<>();
System.out.println("Du hast dich fuer folgende Zahlen entschieden (vom ersten bis zum letzten Spielzug):");
for (int zahl : spielerZahlen) {

}

for (int zahl : zahlenHistorisch) {
System.out.println("Die " + zahl);
}

sc.close();

} // Ende main-Methode

public static int benutzerEingabe(Scanner sc) throws Exception {

System.out.print("Zahl zwischen 1 und 10: ");

int eingabe = sc.nextInt();

if (eingabe < 1 || eingabe > 10) {
throw new Exception();
}

return eingabe;
} // Ende Methode benutzerEingabe()

public static boolean eingabeOkay() {

Scanner sc = new Scanner(System.in);

System.out.print("Ist das okay fuer dich ('y')? Du kannst mit 'n' deinen Zug rueckgaengig machen und wiederholen: ");

String eingabe = sc.nextLine();

if {
return false;
} else {return true;}

} // Ende Methode eingabeOkay()

}

OettingerPirat
Автор

tut zwar nichts zur Sache aber Wii Play Motion mit Panzer fahren: Legendär!

maxiviehauser
Автор

schönes video ein bischen schnell da bei 2:26 "dann müssen wir das in einer variablen speichern" ab da hast du es einbischen schnell runtergeratert das thema push pop stacks hat einwenig lange gebraucht für mich um so was simples zu verstehen xD aber ansosnten Top video und mal kurz nen paar al pause drücken und nachhinten spulen ist jetzt auch ncht die wellt

ajmg
Автор

Super Video, hab's schnell verstanden :D Nur die Musik im Hintergrund nervt meiner Meinung nach etwas

just_another_hoshij
Автор

Stack wirkt für mich irgendwie umständlich, ich bin recht sicher das das nur subjektive einschätzung ist, aber das ist mein Grund für Team Que! (wie oft benutzt ihr stack und Que in eurem programmieralltag?)

skaldenhope
Автор

Die Hintergrundmusik ist ziemlich störend, wenn diese so laut ist. Bin sowieso kein Fan von Musik bei Tutorials etc., aber in anderen Videos von Dir fand ich das angenehmer. Trotzdem super Videos!

watchingyou
Автор

Stell dir vor, deine Lieblingsdatenstruktur sei Queue. Dieser Kommentar wurde erstellt von der Stack Gang

topfranluis
visit shbcf.ru