Hi !
Ich dreh ich bei einem Problem grad völlig durch...
Und zwar habe ich eine Funktion
Das "originalMap" wird außerhalb der Funktion mit
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:
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 !!
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;
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 !!