Tabelle aus CSV, 2 dimensionale HashMap?

Flopwn

Neues Mitglied
Hallo,

für ein Projekt in meinem Studium möchte ich eine Tabelle als CSV-Datei einlesen, diese in einer GUI anzeigen und später auf jeden einzelnen Wert zugreifen. Durch Stöbern im Internet bin ich bisher auf eine Lösung mit einer 2 dimensionalen HashMap gestoßen.

import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Scanner;
public class Arrays {
HashMap<Integer, HashMap<Integer, String>> data = new HashMap<Integer, HashMap<Integer,String>>();


public void put(int x, int y, String value){
HashMap<Integer,String> m = data.get(x);
if(m==null)
m = new HashMap<Integer,String>();
m.put(y, value);
data.put(x, m);
}

public String get(int x, int y){
HashMap<Integer,String> m =data.get(x);
if(m==null)
return null;
return m.get(y);
}


Das funktioniert nicht so wie ich möchte oder ich kriege es aufjedenfall nicht hin.
Hätte da jemand eine Idee?

VG
Flo
 

Robat

Top Contributor
Wie sieht denn die CSV aus? Ich glaube nicht, dass das die Lösung zu deinem Problem ist.

Nachtrag: denke eher, dass eine eigene Klasse für die Werte helfen würde
 

Flopwn

Neues Mitglied
Date,Open,High,Low,Close,AdjClose,Volume
11.11.2013,9081580078,9124240234,9064610352,9107860352,9107860352,66640400
12.11.2013,9102990234,9124240234,9073929688,9076480469,9076480469,96960600
13.11.2013,9056709961,9074559570,8981089844,9054830078,9054830078,92469400
14.11.2013,9137480469,9151349609,9101290039,9149660156,9149660156,108722300
15.11.2013,9157599609,9188469727,9133509766,9168690430,9168690430,96783900
18.11.2013,9154230469,9253679688,9140509766,9225429688,9225429688,88832800
19.11.2013,9197469727,9217360352,9179250000,9193290039,9193290039,77178300
20.11.2013,9175639648,9236780273,9162839844,9202070313,9202070313,68359100
21.11.2013,9127889648,9210669922,9117089844,9196080078,9196080078,78794900

Das mal als kleiner Ausschnitt, aber geht ja ähnlich weiter ;-).
Jetzt möchte ich das einlesen, einmal mit JTable anzeigen und zum Anderen herausfinden, wann ein Volumen gestiegen ist und mit diesem Wert rechnen können.

Ich danke Dir schonmal :)

VG
 

Robat

Top Contributor
Das kannst du doch wunderbar mit einer eigenen Klasse abbilden.
Mal so angerissen:
Java:
// ggf. besseren Namen wählen ;)
class Entry {
    private LocalDate date;
    private long open;
    private long high;
    private long low;
    private long close;
    private long adjClose;
    private long volume;

    // Constructor
    // Getter & Setter
}
Dann kannst du die CSV einlesen, Zeile für Zeile zu einem Entry parsen und eine einfache List<Entry> machen um die Daten zu speichern.
 

MoxxiManagarm

Top Contributor
Ich würde dir auch zu einem Entity Objekt raten, die CSV kannst du auch prima mit einer lib parsen. Hier ein kleines Beispiel mit OpenCSV:

Java:
public class DemoEntityBean {
    @CsvBindByName(column = "Date", required = true)
    private String date;
  
    @CsvBindByName(column = "Open", required = true)
    private String open;
  
    @CsvBindByName(column = "High", required = true)
    private String high;
  
    @CsvBindByName(column = "Low", required = true)
    private String low;
  
    @CsvBindByName(column = "Close", required = true)
    private String close;
  
    @CsvBindByName(column = "AdjClose", required = true)
    private String adjClose;
  
    @CsvBindByName(column = "Volume", required = true)
    private String volume;

    /*getter & setter*/
}

Java:
public class DemoEntityListModel extends AbstractTableModel {
  
    private List<DemoEntityBean> beans;
    private final List<Method> methods;
  
    public DemoEntityListModel(String filename) throws FileNotFoundException {
        // load csv
        String path = getClass().getClassLoader().getResource(filename).getPath();
      
        // parse csv
        beans = new CsvToBeanBuilder(new FileReader(path))
               .withType(DemoEntityBean.class).build().parse();
      
        // helper for table view
        methods = Stream.of(DemoEntityBean.class.getDeclaredMethods())
                .filter((Method m) -> m.getName().startsWith("get"))
                .collect(Collectors.toList());
    }
  
    @Override
    public int getRowCount() {
        return beans.size();
    }

    @Override
    public int getColumnCount() {
        return methods.size();
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        try {
            DemoEntityBean bean = beans.get(rowIndex);
          
            Method getter = methods.get(columnIndex);
          
            return getter.invoke(bean);
        } catch (InvocationTargetException | IllegalAccessException | IllegalArgumentException ex) {
            System.out.println("Something went wrong");
        }
      
        return null;
    }
  
    @Override
    public Class<?> getColumnClass(int columnIndex) {
        return methods.get(columnIndex).getReturnType();
    }
  
    public static void main(String[] args) {
        try {          
            DemoEntityListModel model = new DemoEntityListModel("test.csv");
            DemoView view = new DemoView(model);
          
            view.setVisible(true);
        } catch (FileNotFoundException ex) {
            System.out.println("File not found");
        }
    }
}
Java:
public class DemoView extends JFrame {
    public DemoView(DemoEntityListModel model) {
        setTitle("Demo");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
        JTable table = new JTable(model);
      
        add(table);
      
        pack();
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Trace-Tabelle erstellen Allgemeine Java-Themen 3
G Excel Tabelle lesen und in neue Excel Tabelle einfügen Allgemeine Java-Themen 11
L Hash-Tabelle Allgemeine Java-Themen 2
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
B Hilfe!! spiel um Funktion des Selektierens erweitern (mit ASCII-Tabelle) Allgemeine Java-Themen 3
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
C Zeilen-"Vektor" aus Excel-Tabelle suchen Allgemeine Java-Themen 0
J Datentypen in Java Tabelle Allgemeine Java-Themen 2
T 4x4 Tabelle als Bitboard darstellen Allgemeine Java-Themen 5
P Reordering einer Tabelle im Frontend Allgemeine Java-Themen 1
S 2-spaltige Ausgabe als Tabelle ausgeben Allgemeine Java-Themen 12
K Apache POI Word Tabelle Zellen verbinden Allgemeine Java-Themen 4
K Apache POI Word Tabelle Spaltenbreite festlegen Allgemeine Java-Themen 7
G Tabelle wird nicht richtig dargestellt Allgemeine Java-Themen 9
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
Todesbote Zeilen aus Excel in andere Excel Tabelle kopieren Allgemeine Java-Themen 0
R HTML Tabelle durchsuchen Allgemeine Java-Themen 3
T Mit Apache Poi Daten aus einer Excel Tabelle kopieren und in Word einfügen Allgemeine Java-Themen 1
G Combobox füllen mit daten aus einer Tabelle Allgemeine Java-Themen 4
Iron Monkey Spalte der Tabelle abwechselnd färben Allgemeine Java-Themen 8
Joew0815 JList + JTableModel: Parameter der Tabelle übergeben Allgemeine Java-Themen 10
K HTTP Auslesen einer Tabelle Allgemeine Java-Themen 8
S EAN-Code Tabelle für CD's Allgemeine Java-Themen 2
R Datum in Excel Tabelle eintragen Allgemeine Java-Themen 6
A Tabelle mit iText erstellen Allgemeine Java-Themen 3
M Aus Excel Tabelle lesen und Werte in Array speichern Allgemeine Java-Themen 15
P java tabelle auslesen - xls (excel) fehler Allgemeine Java-Themen 5
A Excel Tabelle in JFrame darstellen Allgemeine Java-Themen 6
K LibreOffice Tabelle Dateien im Format .ods bearbeiten Allgemeine Java-Themen 2
M In einer Tabelle rechnen Allgemeine Java-Themen 12
D Tabelle umwandeln Allgemeine Java-Themen 12
M Rein informativ - Daten aus Excel-Tabelle in Java-Programm importieren Allgemeine Java-Themen 3
M Realisierung einer dynamischen Tabelle unter Android Allgemeine Java-Themen 3
nrg JDOM Tabelle lesen Allgemeine Java-Themen 6
S Javascript & MSAccess Tabelle Allgemeine Java-Themen 5
Weiti Programm zum erstellen einer tabelle aus textdateien Allgemeine Java-Themen 24
R Tabelle - Berechnung der "Zeilenart" Allgemeine Java-Themen 2
D Bild in text tabelle umwandeln Allgemeine Java-Themen 2
A Text durchgestrichen in einer Tabelle darstellen Allgemeine Java-Themen 2
D Spaltenbereite einer Tabelle Allgemeine Java-Themen 2
J Leerer Spalteninhalt in einer Tabelle in JSP Allgemeine Java-Themen 5
M Datum in Tabelle formatiert ausgeben Allgemeine Java-Themen 3
P Datenbank Tabelle spiegeln Allgemeine Java-Themen 22
G Probleme mit dem erstellen einer Tabelle Allgemeine Java-Themen 6
G Tabelle in ein Array schreiben Allgemeine Java-Themen 3
S Excel Tabelle Allgemeine Java-Themen 8
G HTML Tabelle auslesen Allgemeine Java-Themen 8
J Problem mit dem aktualisieren der Tabelle Allgemeine Java-Themen 8
B Tabelle. bei Wertänderung was bestimmtes machen Allgemeine Java-Themen 3
S Werte in Tabelle einfügen! Allgemeine Java-Themen 9
L Datenbank Abfrage (Felder&Tabelle nicht fix) in ArrayLis Allgemeine Java-Themen 4
M Daten in Excel Tabelle schreiben? Allgemeine Java-Themen 7
H Hash Tabelle einlesen und die Werte an ein Array übergeben Allgemeine Java-Themen 10
D iText: Tabelle in Footer einfügen Allgemeine Java-Themen 6
H Leere Tabelle initialisieren Allgemeine Java-Themen 2
L 2 Dimensionale ListArray Abfrage nach einem Wert suchen Allgemeine Java-Themen 5
B zwei-dimensionale Collections bzw. Array mit Indizes Allgemeine Java-Themen 3
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
D Mit Java PHP hashmap lesen Allgemeine Java-Themen 1
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

Ähnliche Java Themen

Neue Themen


Oben