Csv File in Hashmap ausgeben

Chefjava

Mitglied
Hallo Leute!
Habe ein Problem bei dem ich nicht mehr weiterweiß!
Ich muss für die Uni ein Programm schreiben bei dem ich ein Csv file einlese und das in einer Hashmap speichere!

Ich hab eine GUI mit 4 Menüs: Daten einlesen, Nach Zunamen suchen, Nach Adresse suchen, Beenden!

Ich will nun wenn ich auf das Menü: Daten einlesen, drücke dass das Csv File in einer Hashmap gespeichert wird! Kann mir da jemand weiterhelfen? Ich hab nämlich genau 0 plan wie ich an die Sache herangehen soll!

Danke im Vorraus!
lg
 
das ist ein bisschen sehr allgemein - zerleg dein Problem in Teilstuecke und schau was du da schaffst oder hilfe brauchst und dann kann man auch helfen....

Zb wie soll die CSV in einer Map stehen - was ist der Key, was ist/sind die Value(s) etc ?!
 
Mach dir erstmal Gedanken über etwaige Klassen, die dein Programm hat. Gibt es Komponenten, die eine gemeinsame Funktionalität besitzen und sich infolgedessen zusammenfassen lassen zu einer Klasse? Z.B. die Angaben Name + Adresse gehören doch sicherlich zu einem Benutzer oder ähnlichem. Also bauste dir mal fix eine solche Klasse mit den zugehörigen Variablen und Methoden um sie verändern.

Mach das ruhig erstmal mit Stift und Papier, damit du siehst, welche Objekte wie zusammenhängen.

[EDIT]Die GUI hast du schon oder musst du dir auch erst bauen?[/EDIT]
 
Vorab kurz die "Forenregel" #2:
"Wir machen keine Hausaufgaben. Ihr müsst schon eigene Ideen, bzw. Lösungsvorschläge haben."

Vorgehen:
Werte aus Datei einlesen -> Google oder Boardsuche verwenden, da gibts genug Hilfe
Werte in hashmap bringen -> sollte ja eigentlich nicht so schwer sein 😉 ansonsten auch Google 😉

Wenn du schon Code hast, poste den doch bitte, dann können wir dir besser helfen!

[EDIT]Irgendwie zu langsam 😀 [/EDIT]
 
Zuletzt bearbeitet:
Also mal danke leute für die antworten!

@w0ddes: Ich will ja auch nicht, das mir irgendwer die Aufgabe macht, ich weiß nur nicht weiter da ich kein erfahrener Programmierer bin, bei uns an der Uni bekommst du die Aufgabe und dann sollst du sie bis zu einem bestimmten Datum machen, egal wie deine Vorkentnisse aussehen! Und alleine mit Google kann man auch nicht alles schaffen! Drum frage ich in diesem Forum, wo ich weiß das erfahrene Programmierer, die sich besser auskennen, mir helfen können 😉

@HimBrom: Die Gui hab ich schon ja 😉

Also, mithilfe von Google bin ich nicht sehr weit gekommen! Mein Problem liegt daran:

Ich hab noch nie mit Hashmaps gearbeitet und ich bin sehr unerfahren im allgemeinen Programmieren!
Ich soll jetzt wenn ich auf "Daten einlesen" drücke die Daten in eine Hashmap speichern!

Die Csv Datei sieht folgendermaßen aus:
StudentID StudFirstName StudLastName StudStreetAddress StudCity StudState StudZipCode StudAreaCode StudPhoneNumber

mit jeweiligen Werten dazu (18 Zeilen)

der Key sollte der Zuname (also StudLastName) sein!
 
Also ´ne (Hash)Map ist nichts weiter als eine Tabelle, bei der jeder Wert (value) einem Schlüssel (key) zugehordnet ist. Erstellt wird sie wie folgt:
Java:
Map<Datentyp_Schlüssel, Datentyp_Wert> map = new HashMap<Datentyp_Schlüssel, Datentyp_Wert>();
Mit
Code:
Map#get(key)
kannst du dir den Wert holen,
Code:
Map#put(key, value)
speichert einen neuen Wert (bzw. existiert einen evtl. bereits existierenden).
 
Zuletzt bearbeitet:
Du hast schon eine Klasse Student so in etwa

Java:
public class Student {
    private String surname;
    private String forename;
    private String street;
    private String city;
    private String zipCode;
    private String areaCode;
    private String phoneNumber;

    public Studens(String surname, String forename, String street, String city, String zipCode, String areaCode, String phoneNumber) {
        this.surname = surname;
        [....]
    }


    /* Getter & Setter */

    public String getSurname() {
        return surname;
    }

    [...]

}

?

Dann brauchst du noch eine
Code:
Map<String,Student>
(wobei der Nachname als Schlüssel eine bescheuerte Idee ist, etwa im Fall von "Müller"... aber egal).

Du erstellst aus den eingelesenen Daten ein Student-Objekt und dann fügst du das zur Map dazu:
Code:
map.put(student.getSurname(), student);
 
Zuletzt bearbeitet:
Java:
Map<Datentyp_Schlüssel, Datentyp_Wert> map = new HashMap<Datentyp_Schlüssel, Datentyp_Wert>();

also als Datentyp_Schlüssel trag ich dann, den StudLastName ein und alles andere bei Datentyp_Wert wenn ich das jetzt richtig verstanden habe?!
 
Kannst du ja auch. Du liest eine Zeile deiner Datei ein. Dann musst du die enthaltene Zeichenkette geeignet trennen (bei CSV wäre das wohl das Komma als Trennzeichen) und speicherst sie in einer neuen Instanz der Klasse Student. Diesen Studenten haust du anschließend in die Map und fertig ist.
 
haha 😉 ihr traut mir ja viel zu! Ich weiß ist sehr peinlich das ich das frage aber, wie lese ich die erste Zeile ein und geb sie danach aus?

Mal ne Frage am Rande: Wie lang programmiert ihr schon mit Java?
 
Dann lies mal im Vorlesungsskript oder im frei online erhältlichen Java ist auch eine Insel die einzelnen Dinge nach. Natürlich könnten wir das schnell zusammenrpogrammieren, aber das macht keinen Sinn.

Zu der Bezeichnerfrage: Klar "geht" das, aber in einer Klasse mit dem Namen "Student" alle Attribute mit student zu beginnen hallte ich für Unfug.
 

Neue Themen


Zurück
Oben