Serialisierung von Hashmap in Vector

Status
Nicht offen für weitere Antworten.
Hallo erstmal im Forum. :)

Jetzt zu meinem Problem : :autsch:


Ich muss für die Schule ( keine Hausaufgabe :bae: ) ein Programm schreiben mit dem man die Punkte einzelner Schüler verwalten kann.
Soweit ist das Programm fertig, es fehlt noch die Serialisierung.

Und genau hier liegt mein Problem.

Alle nötigen Klassen implementieren Serializable

Ich habe in der Klasse PlayerManager ein Vector<Player> der alle Spieler verwaltet.
In der Klasse Player hab ich eine weitere Klasse GameScore die eine HashMap<Game,Long> enthält, die die Punkte den einzelnen Spielen zuordnet.

Ich speichere also den Vector<Player>ab, und lade ihn wieder.
Die HashMap<Game,Long> wird aber nicht wieder geladen, alle Punkte der einzelnen Player sind auf null.

Werden die Daten von der HashMap einfach nicht gespeichert, oder liegt es an der Serialisierung??

Hier noch die Klassen GameScore und PlayerManager :

Code:
package de.mueller.game;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Vector;

import de.mueller.swing.frame.JScoreFrame;

public class PlayerManager {

    private final static Vector<Player> players = new Vector<Player>();

    private static PlayerManager manager;

    private PlayerManager() {

    }

    public static void savePlayers(File path) {

	ObjectOutputStream out = null;
	FileOutputStream fos = null;

	try {
	    fos = new FileOutputStream(path);
	    out = new ObjectOutputStream(fos);

	    out.writeObject(players);

	} catch (FileNotFoundException e1) {
	    // TODO Auto-generated catch block
	    e1.printStackTrace();
	} catch (IOException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	} finally {
	    try {
		fos.close();
		out.close();
	    } catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	    }

	}

    }

    public static void loadPlayers(JScoreFrame f, File path) {
	FileInputStream in = null;
	ObjectInputStream oin = null;
	Vector<Player> players = new Vector<Player>();
	try {
	    in = new FileInputStream(path);
	    oin = new ObjectInputStream(in);

	    players = (Vector<Player>) oin.readObject();

	    PlayerManager.setDataModel(players);

	} catch (FileNotFoundException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	} catch (IOException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	} catch (ClassNotFoundException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	} finally {

	    try {
		f.getDataInputTable().updateUI();
		f.getViewTable().updateUI();
		oin.close();
		in.close();
	    } catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	    }
	}
    }

    private static void fillPlayers() {

	players.add(new Player("Max Mustermann", "10"));

    }

    public static Vector<Player> getDataModel() {
	if (players.isEmpty()) {
	    fillPlayers();
	}
	return players;
    }

    public static void setDataModel(Vector<Player> newplayers) {
	players.removeAllElements();
	for (Player p : newplayers) {
	    players.add(p);

	}
    }

    @Deprecated
    public static void addPlayer(Player p) {
	players.add(p);
    }

    @Deprecated
    public static void removePlayer(int index) {
	players.remove(index);
    }

    public static Player getPlayer(int index) {
	return players.get(index);
    }

}

Code:
package de.mueller.game;

import java.io.Serializable;
import java.util.HashMap;

public class GameScore implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = -2404163886339637L;

    private HashMap<Game, Long> scores = new HashMap<Game, Long>();

    /**
     * TODO Documentation
     * 
     * @param scores
     *            the scores to set
     */
    public void setScores(HashMap<Game, Long> scores) {
	this.scores = scores;
    }

    private long lastKnownScore = 0L;

    public HashMap<Game, Long> getScores() {

	return scores;
    }

    public Long getScoreFor(Game g) {

	return scores.get(g);
    }

    public void addScoreFor(Game g, long score) {

	scores.put(g, scores.get(g) + Math.round(score * g.getFactor()));
	lastKnownScore = (score);

    }

    public GameScore() {
	System.out.println("Called");
	scores.put(Games.DOSENWERFEN, 0L);
	scores.put(Games.FREIWURF, 0L);
	scores.put(Games.HULAHOOP, 0L);
	scores.put(Games.RINGWERFEN, 0L);
	scores.put(Games.SEILSPRINGEN, 0L);
	scores.put(Games.TORWAND, 0L);

    }

    public void ensureScoreFilled() {
	System.out.println("ensureScoreFilled");
	System.out.println(scores.get(Games.TORWAND));
	for (int i = 0; i < Games.getGames().length; i++) {
	    if (scores.get(Games.getGames()[i]) == null) {
		scores.put(Games.getGames()[i], 0L);
	    }
	}

    }

    public String length() {

	return scores.size() + "";
    }

    public long getLastKnownScore() {

	return lastKnownScore;
    }

}
 
G

Gelöschtes Mitglied 5909

Gast
hat Game kein hashCode überschrieben ?
Fliegt ne Exception?
 
Jetzt funktionierts.
Ich hab grad nochmal mein Buch rausgepackt und geguckt was man für die HashMap braucht.
Game hatte kein hashCode überschrieben.
Ich hab immer so banale Fehler :D . Es liegt wahrscheinlich auch daran, dass ich
das erste mal HashMap benutze und mir vorher nix darüber durchgelesen habe :oops: .


Ich wäre durch dein Vorschlag auch drauf gekommen, Danke! :D

Mfg KindOfAutomatic
 

Landei

Top Contributor
Kleine Regel:
-wenn equals überschrieben, dann auch hashCode
-wenn hashCode überschrieben, dann auch equals
-wenn compareTo überschreiben, dann auch equals und hashCode
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Serialisierung und Deserialisierung einer HashMap Allgemeine Java-Themen 17
antonia09 Einkaufszettel Persistenz und Serialisierung Allgemeine Java-Themen 6
D Serialisierung und Deserialisierung von Objekten - Frageprogramm Allgemeine Java-Themen 4
R Datentypen Korrekte integer in Hex ASCII Konvertierung und serialisierung Allgemeine Java-Themen 1
M Serialisierung funktioniert nicht Allgemeine Java-Themen 9
Z Best Practice Serialisierung Allgemeine Java-Themen 2
Arif Input/Output Serialisierung - Datei wird nicht erzeugt Allgemeine Java-Themen 3
M Alternative zur Serialisierung.. Protobuf? Allgemeine Java-Themen 9
E Serialisierung - Deserialisierung Allgemeine Java-Themen 4
Thallius Serialisierung schlägt fehl. Allgemeine Java-Themen 3
M Serialisierung & Verschlüsselung Allgemeine Java-Themen 2
E Serialisierung - Sinn einer generierten serialVersionUID? Allgemeine Java-Themen 4
V Serialisierung von Instanz eigener Klasse Allgemeine Java-Themen 5
A Input/Output Serialisierung und Object.hashCode() Allgemeine Java-Themen 3
K Serialisierung einer verschachtelten Datenstuktur Allgemeine Java-Themen 9
Tobse Input/Output Dateiformat: Serialisierung VS Custom format Allgemeine Java-Themen 6
A Problem bei Serialisierung von Bibliotheks-Klassen Allgemeine Java-Themen 6
A Input/Output Serialisierung Sonderzeichen Allgemeine Java-Themen 3
P Serialisierung der Oberklasse Allgemeine Java-Themen 2
Kr0e Circular reference - Serialisierung Allgemeine Java-Themen 6
K Serialisierung in Properties-Datei möglich? Allgemeine Java-Themen 3
B Serialisierung mit Unterobjekten über Netzwerk Allgemeine Java-Themen 3
C Serialisierung - Standardwert für nachträglich hinzugefügtes Feld Allgemeine Java-Themen 2
S Serialisierung der Kindklasse Allgemeine Java-Themen 5
K Serialisierung komplett selbst machen Allgemeine Java-Themen 13
C Serialisierung ohne Serializable Allgemeine Java-Themen 4
S Serialisierung und Referenzen Allgemeine Java-Themen 6
S Viele Bilder -> Speicher ausgelastet? / (De-)serialisierung geht nicht mehr richtig Allgemeine Java-Themen 8
E Objekt bei Serialisierung ändern Allgemeine Java-Themen 2
Q Serialisierung / Speicherung Geschwindingkeit & Aktuelle Position Allgemeine Java-Themen 7
W Serialisierung Allgemeine Java-Themen 6
F Serialisierung und Obfuscation? Allgemeine Java-Themen 7
G (De)serialisierung und Referenzen Allgemeine Java-Themen 5
T Serialisierung: Wie macht RMI das so schnell? Allgemeine Java-Themen 14
J Serialisierung: readInt + writeInt Allgemeine Java-Themen 4
X Einige Fragen zu Serialisierung Allgemeine Java-Themen 2
J bean + serialisierung + serialVersionUID Allgemeine Java-Themen 3
K Serialisierung Allgemeine Java-Themen 6
thE_29 Wie funktioniert Serialisierung? Allgemeine Java-Themen 10
S Problem mit Serialisierung Allgemeine Java-Themen 2
C Serialisierung von JComboBox Allgemeine Java-Themen 4
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
T HashMap values Bearbeitung Allgemeine Java-Themen 4
T Hashmap Values Bearbeitung Allgemeine Java-Themen 1
JavaJakob22 Bestimmte HashMap importieren Allgemeine Java-Themen 4
killig HashMap mit if-Anweisung überprüfen Allgemeine Java-Themen 4
killig Textdatei einlesen und in HashMap speichern (duplikate entfernen) Allgemeine Java-Themen 12
LimDul Kam eine java.net.URL zu einer HashMap und ging als DNS Anfrage wieder heraus Allgemeine Java-Themen 18
L HashMap Allgemeine Java-Themen 10
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
B HashMap Duplikate Allgemeine Java-Themen 4
A HashMap Methode "get()"-Problem Allgemeine Java-Themen 28
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
F Tabelle aus CSV, 2 dimensionale HashMap? Allgemeine Java-Themen 4
D Mit Java PHP hashmap lesen Allgemeine Java-Themen 1
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
B HashMap aus Value Key bekommen Allgemeine Java-Themen 2
N HashMap und Methoden richtig einbinden Allgemeine Java-Themen 2
J Problem bei Hashmap Key-Abfrage Allgemeine Java-Themen 4
X JSONObject auslesen und in HashMap hinterlegen Allgemeine Java-Themen 16
N Werte aus Hashmap auslesen und übertragen Allgemeine Java-Themen 8
JavaWolf165 JsonObject in HashMap umwandeln Allgemeine Java-Themen 16
R ArrayList und HashMap Allgemeine Java-Themen 7
L Assoziatives Datenfeld, schneller wie Hashmap Allgemeine Java-Themen 35
G Methoden HashMap speichert unter falschen Schlüsseln Allgemeine Java-Themen 6
D Verschachtelte HashMap initializieren Allgemeine Java-Themen 1
L Variablen HashMap nimmt value nicht an Allgemeine Java-Themen 3
R Hierarchie mit HashMap darstellen Allgemeine Java-Themen 19
D Datentypen HashCollision in HashMap Allgemeine Java-Themen 3
Z Concurrent Modification Exception - HashMap (kein remove) Allgemeine Java-Themen 4
B Zugriff auf eine HashMap Allgemeine Java-Themen 4
B Userdaten in Hashmap speichern - Servlet Allgemeine Java-Themen 6
T Hashmap mit geordneter/ungeordneter liste als Value Allgemeine Java-Themen 5
I HashMap key wird nicht erkannt trotz überschriebener equals/hashCode Methode Allgemeine Java-Themen 6
M Füllfaktor einer Hashmap Allgemeine Java-Themen 7
A Collections HashMap.containsKey findet keine immutablen Objekte Allgemeine Java-Themen 3
D Datentypen HashMap Allgemeine Java-Themen 5
R Collections Performance einer HashMap Allgemeine Java-Themen 26
C LinkedList und ArrayList in HashMap Allgemeine Java-Themen 4
T Erste Schritte HashMap<String, int> Allgemeine Java-Themen 2
K Hashmap sortieren Allgemeine Java-Themen 6
F HashMap überschreibt Daten von anderen HashMap Allgemeine Java-Themen 5
S HashMap containsKey liefert immer false zurück Allgemeine Java-Themen 15
H Problem beim Sortieren einer HashMap mit TreeSet Allgemeine Java-Themen 4
K HashMap sorting verhindern Allgemeine Java-Themen 10
J Generic von einer ArrayList/HashMap bekommen Allgemeine Java-Themen 7
L HashMap mit Enum Keys Allgemeine Java-Themen 3
J Array als Schlüssel für HashMap Allgemeine Java-Themen 6
S Geschwindigkeit HashMap oder .getParent Allgemeine Java-Themen 5
V Hashmap-Frage Allgemeine Java-Themen 3
M HashMap - Ich bin verwirrt Allgemeine Java-Themen 3
H2SO3- multiple Hashmap Allgemeine Java-Themen 5
K Threading - schreiben auf Hashmap/löschen - ConcurrentModificationException Allgemeine Java-Themen 3
J NullPointerException mit HashMap Allgemeine Java-Themen 2
V Probleme mit eigener Hashmap Allgemeine Java-Themen 10
N HashMap<String,Vector<String>> a = new HashMap<String,Vector<String>>(); Allgemeine Java-Themen 4
I HashMap Problem... Allgemeine Java-Themen 3
C HashMap Allgemeine Java-Themen 12
Daniel_L Map/HashMap - Reihenfolge von Einträgen Allgemeine Java-Themen 4
L HashMap Key Reihenfolge umkehren Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben