Queue mit Daten aus einem Stack füllen

babuschka

Top Contributor
Hallo zusammen,

habe ein kleines Problem.

Dem Konstruktor wird eine Sammlung von Titeln in Form eines Stacks übergeben.
Die Daten sollen dann in eine Queue geschrieben werden, sodass der Stack danach leer ist.
Wie kann man das am besten realisieren?

Java:
public class Sammlung {

	private Queue<String> songs;

	//Konstruktor
	public Sammlung(Stack <String> s){
		
		}
	}
	
	//Fuege neue Songs hinzu
	
	public void addNewSongs(String[] neueSongs){
		
		
	}
}

Vielen Dank für eure Hilfe.
Greenbird
 
G

Gast2

Gast
So etwa:
Java:
while (!stack.empty()) {
    this.offer(stack.pop());
}
(Falls du die Standard Java klasse nutzt.)
 
Zuletzt bearbeitet von einem Moderator:
Z

Zeeu

Gast
Du solltest dir überlegen, was für Methoden der Stack und die Queue zur verfügung stellen.
Benötigen wirst du wohl poptop und enqueue.
 

babuschka

Top Contributor
Java:
//Konstruktor
	public MusikSammlung(Stack <String> s){
		
		
		while(!s.isEmpty()){
			songs.enqueue(s.pop());
		}
		
	}

Habe das mal als Überlegung gehabt. Glaube allerdings das es da Probleme mit dem Datentyp gibt <String>
 
Z

Zeeu

Gast
Java:
//Konstruktor
	public MusikSammlung(Stack <String> s){
		
		
		while(!s.isEmpty()){
			songs.enqueue(s.pop());
		}
		
	}

Habe das mal als Überlegung gehabt. Glaube allerdings das es da Probleme mit dem Datentyp gibt <String>

das wird nicht funktionieren, weil du nur das oberste element im stack löscht, aber nicht zurückgibst, du musst die Methode popTop() implementieren, wie oben schon jemand gepostet hat, und die benutzen.
 
Z

Zeeu

Gast
du brauchst eine Methode, die dir etwas vom Stack zurück gibt, push legt eins drauf, pop löscht eins.
Oder ist die Methode pop vom java eigenen Stack schon ein poptop ?
 
Z

Zeeu

Gast
dann ist das pop vom java stack einfach überladen, je nachdem ob du nen return willst oder nich, ok dann wird deine methode mit dem stack so funktionieren, wir implementieren immer eine poptop für unseren eigenen stack.
 

babuschka

Top Contributor
Versteh ich nicht so wirklich.
Im Prinzip muss ich doch den Stack durchlaufen und mit "pop" die Daten einzeln runterwerfen. Gleichzeitig muss ich die Daten mit "enqueue" in die Queue schmeißen.

Oder sehe ich das falsch? Kann man das auch über den Iterator machen? mit "HasNext" ?
 
Z

Zeeu

Gast
ne du lagst schon richtig, der fehler lag bei mir, so wie du es oben hattest sollte es gehen.
Da ich noch nie mit dem java eigenen Stack gearbeitet habe, löscht meine pop immer nur das oberste element.
bei deinem pop ist die PopTop schon mit drin, da sie einen return wert hat.

da deine schleife solange läuft, bis der Stack leer ist, sollte das schon das ende der methode sein.
 
G

Gast2

Gast
dann ist das pop vom java stack einfach überladen
Du kannst in Java eine Methode nur überladen wenn sich die Methodensignatur unterscheidet. Der Rückgabewert gehört (int Java) nicht zur Methodensignatur.
sowas wie
Code:
void pop();
Code:
Object pop();
ist damit nicht möglich.
 
Z

Zeeu

Gast
dann würde es die methode pop() nur 1x mit einem übergabeparameter geben, und daher immer einen wert zurückgeben, ob ich was damit anfange oder nicht. Stimmt das so ?
 

muckelzwerg

Bekanntes Mitglied
Schau Dir doch einfach die Stack-Klasse an. Die ist von Vector abgeleitet.
Java:
class Stack<E> extends Vector<E> {

....

     /**
     * Removes the object at the top of this stack and returns that
     * object as the value of this function.
     *
     * @return     The object at the top of this stack (the last item
     *             of the <tt>Vector</tt> object).
     * @exception  EmptyStackException  if this stack is empty.
     */
public synchronized E pop() {
    E	obj;
	int	len = size();

	obj = peek();
	removeElementAt(len - 1);

	return obj;
}


     /**
     * Looks at the object at the top of this stack without removing it
     * from the stack.
     *
     * @return     the object at the top of this stack (the last item
     *             of the <tt>Vector</tt> object).
     * @exception  EmptyStackException  if this stack is empty.
     */
public synchronized E peek() {
	int	len = size();

	if (len == 0)
	    throw new EmptyStackException();
	return elementAt(len - 1);
}
 
Z

Zeeu

Gast
ich geb zu, ich schreibe manchmal ein wenig wirr.
Da ich auf der Uni ohne dem von java mitgeliefertem Stack arbeite, gibt es bei uns die methoden:
pop() löscht das oberste und popTop() gibt das oberste zurück und löscht es.

der Java Stack hat nur pop(), der meinem popTop() entspricht.

ist das jetzt so richtig ?
 

muckelzwerg

Bekanntes Mitglied
Klar. War auch vorher schon richtig.
Ich kenne zwar die Trennung in pop und poptop nicht so, aber ich finde den Java-Stack um den Vector herum auch etwas "gewöhnungsbedürftig".
 
Z

Zeeu

Gast
Ich mach auch nur was der Prof uns sagt, das läuft meistens so ab, das er selber den Stack vorgibt, wir benutzen und erweitern diesen. habe noch nie einen Stack, ne Queue, liste oder baum von java benutz.
Alles kommt vom Prof, darum war ich am anfang auch so bestürzt dass er mit pop() was auslesen will :)
 

muckelzwerg

Bekanntes Mitglied
Wenn Du damit häufiger zu tun hast, häng Dich nicht zu sehr an den Prof. Dass "pop()" ein Element zurückgibt, würde ich als ziemlich "normal" bezeichnen.
Du brauchst die Funktion ja so oder so. Ob Du sie nun poptop oder pop nennst.
 
Z

Zeeu

Gast
Ich denke wir sollen den Stack auch nur zum verständniss selber bearbeiten und intern damit arbeiten.
Als angehender Software-Ingenieur macht das auch sinn, dass wir nicht nur wissen, wie wir etwas benutzen, sondern auch was er genau macht. Ich mach dem Prof mal keine vorwürfe, aber hoffe, dass wir im nächsten Semester mit den Java Komponenten arbeiten werden :)

danke für die aufklärung
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Vererbung Queue bestehend aus Superclass- und Subclass-Objekten Java Basics - Anfänger-Themen 7
B Zahlenfolge von Queue in Stack Java Basics - Anfänger-Themen 29
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
P Priority Queue Performance Java Basics - Anfänger-Themen 3
Chabub Hilfe bei Stacks und Queue Java Basics - Anfänger-Themen 2
G Stack und Queue Arbeitsblatt Java Basics - Anfänger-Themen 3
F Queue zyklisch Java Basics - Anfänger-Themen 8
D Queue vs. Stack Java Basics - Anfänger-Themen 6
L Queue mithilfe von 2 Stacks erstellen Java Basics - Anfänger-Themen 1
B Automatisierung von Jobs / @EJB Scheduler / Verhinderung, dass Queue überläuft Java Basics - Anfänger-Themen 2
A Priority Queue / Comparator Java Basics - Anfänger-Themen 6
J Queue Warteschlange Java Basics - Anfänger-Themen 3
J Liste,Queue,Stack sortieren Java Basics - Anfänger-Themen 2
Y Unendlicher Ringbuffer (Queue) Java Basics - Anfänger-Themen 49
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
E Stack vs Queue - Gemeinsamkeiten / Unterschiede Java Basics - Anfänger-Themen 7
H Collections StackOverflowError in einer Queue Java Basics - Anfänger-Themen 3
R Klassen Die lineare Datenstruktur Queue Java Basics - Anfänger-Themen 3
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
K Queue enq Fehler Java Basics - Anfänger-Themen 2
F Thread der auf eine Queue wartet, sicher beenden Java Basics - Anfänger-Themen 4
A Queue (Array) leeren Java Basics - Anfänger-Themen 1
F HTTP Get Queue Java Basics - Anfänger-Themen 7
J Queue zyklisch auslesen Java Basics - Anfänger-Themen 4
B Generische Queue programmieren Java Basics - Anfänger-Themen 5
T Priority-Queue Java Basics - Anfänger-Themen 9
S Integer/Value-Paar in Prio-Queue ohne Comparator Java Basics - Anfänger-Themen 5
P Array queue problem Java Basics - Anfänger-Themen 1
L Queue programmieren via BlueJ Java Basics - Anfänger-Themen 5
B Multithreading und eigene Queue entwickeln Java Basics - Anfänger-Themen 3
I Erste Schritte Queue Java Basics - Anfänger-Themen 14
G Queue auf einer Seite löschen, andre Seite schreiben Java Basics - Anfänger-Themen 3
G Queue mit int oder float Java Basics - Anfänger-Themen 3
Q queue.remove Element trotzdem noch vorhanden. Java Basics - Anfänger-Themen 10
P Priority Queue Java Basics - Anfänger-Themen 6
M Compiler-Fehler Queue als ArrayList mit Exceptions Java Basics - Anfänger-Themen 3
S Fehler beim Auslösen des ActionListeners in Verbindung mit einer Queue Java Basics - Anfänger-Themen 5
P Collections Queue mittels ArrayList Java Basics - Anfänger-Themen 2
T Collections Queue<? extends Number> add() offer() Java Basics - Anfänger-Themen 13
S Queue als doppelt verkettete Liste Java Basics - Anfänger-Themen 2
R NullPointerException in Queue-Implementierung Java Basics - Anfänger-Themen 11
B Queue problem! Java Basics - Anfänger-Themen 2
R Queue abhören und Message in Browser ausgeben Java Basics - Anfänger-Themen 3
T Erstellung von Queue mit verkketten listen Java Basics - Anfänger-Themen 3
kulturfenster Stack / Queue Implementationen Java Basics - Anfänger-Themen 11
K Priority Queue - wo ist denn jetzt der Vorteil? Java Basics - Anfänger-Themen 7
W Iterator in Queue Java Basics - Anfänger-Themen 5
Q An erste Stelle in eine Queue eintragen Java Basics - Anfänger-Themen 4
H Stack und Queue Java Basics - Anfänger-Themen 6
M Threadsichere Queue in Java 1.5? Java Basics - Anfänger-Themen 2
G Int-Queue in String-Queue umwandeln Java Basics - Anfänger-Themen 5
A Queue erweitern Java Basics - Anfänger-Themen 13
P Queue, Stacks, Listen Java Basics - Anfänger-Themen 7
S Queue als Array implementiert get()? Java Basics - Anfänger-Themen 4
S Queue als verkettete Liste Java Basics - Anfänger-Themen 9
S Queue Java Basics - Anfänger-Themen 30
K Prüfen, ob Queue leer ist Java Basics - Anfänger-Themen 5
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Daten in Echtzeit übernehmen Java Basics - Anfänger-Themen 5
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Minesweeper - Daten Java Basics - Anfänger-Themen 46
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
WPS1000 Input/Output Wie aktiviere ich den Daten Transfer von der RS232 in meine Java Applikation Java Basics - Anfänger-Themen 2
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
S Daten lesen und speichern Java Basics - Anfänger-Themen 26

Ähnliche Java Themen

Neue Themen


Oben