rekursiver Funktionsaufruf

Status
Nicht offen für weitere Antworten.

Bit2_Gosu

Bekanntes Mitglied
Hi !

Ich dreh ich bei einem Problem grad völlig durch...
Und zwar habe ich eine Funktion

Code:
public void auswerten(HashMap <String,Integer> map)
{
    if (originalMap==null)
    {
        originalMap = (HashMap <String,Integer>) map.clone();	
    }

    while (map.size()>0)
    {
        **** Entferne ein Element aus der "map" (nicht aus der originalMap !).
        System.out.println(originalMet);
    }

    auswerten(originalMap);
}

Das "originalMap" wird außerhalb der Funktion mit
Code:
private HashMap <String,Integer> originalSet;
eingeführt.

Nun rufe ich die Funktion auswerten() einmal von einer anderen Klasse aus auf - und zwar mit einer HashMap mit 9 Elementen.

Eigentlich müsste ja immer die gleiche Ausgabe einer HashMap mit 9 Elementen erfolgen, weil ja nur Elemente aus der "map" (siehe Funktionsparameter) und nicht aus der "originalMap" entfernt werden.

Was nun ausgegeben wird ist folgendes:

{Paul=7, Phillipp=3, Max=6, Markus=8, Jannis=5, Moritz=3, Alex=4, Richard=5}
{Paul=7, Phillipp=3, Max=6, Markus=8, Jannis=5, Moritz=3, Alex=4, Richard=5}
{Paul=7, Phillipp=3, Max=6, Markus=8, Jannis=5, Moritz=3, Alex=4, Richard=5}
{Paul=7, Phillipp=3, Max=6, Markus=8, Jannis=5, Moritz=3, Alex=4, Richard=5}
{Paul=7, Phillipp=3, Max=6, Markus=8, Jannis=5, Moritz=3, Alex=4, Richard=5}
{Paul=7, Phillipp=3, Max=6, Markus=8, Jannis=5, Moritz=3, Alex=4, Richard=5}
{Paul=7, Phillipp=3, Max=6, Markus=8, Jannis=5, Moritz=3, Alex=4, Richard=5}
{Paul=7, Phillipp=3, Max=6, Markus=8, Jannis=5, Moritz=3, Alex=4, Richard=5}

neuversuch nr. 1 wird gestartet.

{Paul=7, Max=6, Markus=8, Jannis=5, Moritz=3, Alex=4, Richard=5}
{Paul=7, Max=6, Markus=8, Jannis=5, Moritz=3, Alex=4}
{Paul=7, Max=6, Jannis=5, Moritz=3, Alex=4}
{Paul=7, Max=6, Jannis=5, Alex=4}
{Paul=7, Jannis=5, Alex=4}
{Paul=7, Jannis=5}
{Jannis=5}
{}

Beim ersten Durchlauf bleibt die "originalMap" wie geplant bei jedem Schleifendurchlauf erhalten. Beim zweiten Durchlauf wird aber anscheinend aus der "originalMap" entfernt...

Ist das denn normal ?? Und wenn - wie kann man dieses Problem um Gottes willen lösen ? (sodass immer wieder eine Ausgabe wie beim ersten Durchlauf der Funktion erfolgt)

Bin für jede Hilfe sehr dankbar !!
 

Der Müde Joe

Top Contributor
null ist nicht gleich empty.

Beim ersten mal ist original null...also wird gekolont.

beim 2 versuch ist original nicht mehr null...also nix mehr klon

dann ist map wie übergeben originalMap (die Instanzvariable) und removst vom Original

EDIT:
Lösung des Problems:
nicht die OriginalMap beim 2. mal übergeben sonder nur 1 kopie davon :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
J Rekursiver Algorithmus Java Basics - Anfänger-Themen 9
K Rekursiver Vergleich von Textmuster und Text Java Basics - Anfänger-Themen 2
M Probleme bei rekursiver Zuordnung Java Basics - Anfänger-Themen 1
H Rekursiver Aufruf Java Basics - Anfänger-Themen 8
S Rekursiver InsertionSort ohne Schleife Java Basics - Anfänger-Themen 7
K Methoden Fibonacci in Array mit rekursiver Methoden Java Basics - Anfänger-Themen 19
4 Stack over flow bei rekursiver Tiefensuche Java Basics - Anfänger-Themen 5
T Rekursiver Methodenaufruf funktioniert nicht Java Basics - Anfänger-Themen 7
O Rekursiver Durchlauf verschachtelter Elemente Java Basics - Anfänger-Themen 1
B Quadratwurzel nach Heron in rekursiver Darstellung Java Basics - Anfänger-Themen 1
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
W sysout in rekursiver methode Java Basics - Anfänger-Themen 4
A Rekursiver Pseudocode Java Basics - Anfänger-Themen 4
E Problem bei rekursiver Berechnung des Binomialkoeffizienten Java Basics - Anfänger-Themen 5
S Probleme bei Ausgabe von rekursiver Methode (List) Java Basics - Anfänger-Themen 16
J Rekursiver Horner-Schema-Algorithmus - Verstehe ich ihn richtig? Java Basics - Anfänger-Themen 2
D Binäre Suche für Integerarray in rekursiver Funktion Java Basics - Anfänger-Themen 5
O Faktorielle mit rekursiver Methode berechnen Java Basics - Anfänger-Themen 6
S Laufzeit bei rekursiver Methode messen Java Basics - Anfänger-Themen 6
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
J rekursiver Methodenaufruf Java Basics - Anfänger-Themen 12
D Datentypen Rekursiver Datentyp Java Basics - Anfänger-Themen 8
S Werte von rekursiver Methode Java Basics - Anfänger-Themen 5
Q rekursiver algo. Java Basics - Anfänger-Themen 16
M Potenz mithilfe rekursiver Funktion Java Basics - Anfänger-Themen 13
F Rekursiver Algorithmus Java Basics - Anfänger-Themen 5
C Frage zu negativen und positiven Exponenten in rekursiver Methode Java Basics - Anfänger-Themen 11
G Rekursiver Aufruf einer JSP über eine JavaScript-Funktion Java Basics - Anfänger-Themen 5
G PRoblem mit rekursiver float additions methode Java Basics - Anfänger-Themen 9
E fehlermeldung bei rekursiver grafik Java Basics - Anfänger-Themen 11
F Problem bei rekursiver Binärsuche Java Basics - Anfänger-Themen 2
T Rekursiver Algorithmus: Türme von Hanoi Java Basics - Anfänger-Themen 8
I Funktionsaufruf (asynchron?) Java Basics - Anfänger-Themen 11
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
SpigBin Sound einbinden bei Funktionsaufruf Java Basics - Anfänger-Themen 4
cmn489 Werte beim Funktionsaufruf in ein Feld übertragen(falls dieses leer ist) Java Basics - Anfänger-Themen 1
S Erste Schritte Funktionsaufruf mit Wrapper Java Basics - Anfänger-Themen 4
M OOP Probleme beim Funktionsaufruf, Java OpenCV Java Basics - Anfänger-Themen 0
T Klassen Funktion in einem Funktionsaufruf definieren Java Basics - Anfänger-Themen 3
M Funktionsaufruf durch int unterscheidbar Java Basics - Anfänger-Themen 4
W Funktionsaufruf nach Bedingung Java Basics - Anfänger-Themen 3
P Funktionsaufruf, wo der Funktionsname ein String ist Java Basics - Anfänger-Themen 2
Z Funktionsaufruf in der main-Methode Java Basics - Anfänger-Themen 12
M Woher kommt der Funktionsaufruf? Java Basics - Anfänger-Themen 2
L ArrayList als Parameter bei Funktionsaufruf? Java Basics - Anfänger-Themen 6
C Vererbung und Funktionsaufruf Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben