Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
CSV Zeilenweise einlesen und in einer HashMap speichern
Habe folgendes Problem.
Ich habe eine CSV die ungefähr so aussieht:
Breite Höhe
5 10
2 3 ....... usw.
Nun schaffe ich es mit einem BufferedReader und FileReader die CSV auszulesen und zeilenweise auszugeben, aber was ich eigentlich gerne hätte, wäre die erste Zeile als Keys für die HashMap zu setzen und die werte dann der "Breite" und der "Höhe" zuzuordnen.
Versteht ihr wie ich meine? ^^
Und leider haut das mit der HashMap nicht hin, kenne mich da auch noch zu wenig aus.
Nun schaffe ich es mit einem BufferedReader und FileReader die CSV auszulesen und zeilenweise auszugeben, aber was ich eigentlich gerne hätte, wäre die erste Zeile als Keys für die HashMap zu setzen und die werte dann der "Breite" und der "Höhe" zuzuordnen.
Nein, warum willst Du die erste Zeile als Key in einer HashMap verwenden? Ein Key kann nur einen Wert haben.
Warum HashMap bzw. was willst Du eigentlich?
Ich habe in den Spalten die Breite stehen und in den Zeilen die Höhe
Das muss man sich wie eine Matrix vorstellen.
Und jeder Jede Breite ist einer Höhe zugeordnet dessen Schnittpunkt ein Wert beinhaltet
Verständich?
Ich lad lieber kurz mal ne beispiel csv hoch ^^
Also jeder Höhe und jeder Breite ist ein bestimmter Wert zugeordnet.
Jetzt will ich diese Datei so einlesen, das ich eine GUI bastelln kann, in der man Breite und Höhe eingibt und dann den Schnittpunkt dieser 2 Werte ausgegeben bekommt.
OK, eine Matrix. Wenn die Kombinationen aus Höhe und Breite eindeutig sind, dann kann man daraus ja einen eindeutigen Key basteln z.B. als String
Code:
h_b
und den Wert dazu in einer HashMap speichern. Beim Auslesen muss man dann wieder nach den selben Regeln den Key aus den Werten zusammenbauen. Oder man definiert ein eigenes Key Object...
du erstellst dir eine neue kleine hilfklasse, die ein eine Zeile abbildet, also eine BreiteHoehe(int breite, int hoehe) Klasse.
die packst du dann als value in die map. als key nimmst du breite +"_"+hoehe
oder einfach ne liste
Wo hängt's denn? Kannst Du eingelesenen Zeilen zerlegen, so dass Du an die einzelnen Werte kommst?
Die erste Zeile mit den Breitenangaben musst Du Dir merken (hier bietet sich z.B. ein Array an), danach kannst Du die weiteren Zeilen einlesen. Der erste Wert der Zeile (die Höhenangabe) kombiniert mit dem Breitenwert der Spalte bildet den Key dem dann der jeweilige Wert der Spalte zugewiesen wird.
Wie hast Du's bei der ersten Zeile gemacht?
Je nach dem wie die Datei aufgebaut ist kann man z.B. mit der split(...) Methode von String die Zeilen in Ihre einzelnen Werte zerlegen. Die Methode liefert dann ein String Array zurück