Frage

Ich arbeite an einem Java-Projekt, dass die Benutzer mehrere Dateien mit potenziell Tausende von Zeilen analysieren können. Die Informationen analysiert werden in verschiedenen Objekten gespeichert werden, die zu einer Sammlung werden dann zugegeben.

Da die GUI nicht all diese Aufgaben erfordert auf einmal zu laden und sie in Erinnerung zu behalten, ich bin auf der Suche nach einer effizienten Art und Weise zu Laden / Entladen von Daten aus Dateien, so dass die Daten nur in die Sammlung geladen wird, wenn ein Benutzeranforderungen es.

Ich bin jetzt nur Auswertungsmöglichkeiten. Ich habe auch der Fall gedacht, wo nach einer Teilmenge der Daten in die Sammlung Laden und auf der GUI präsentiert, der beste Weg, um die zuvor beobachteten Daten nachzuladen. Re-run den Parser / Populate Sammlung / Populate GUI? oder wahrscheinlich einen Weg finden, die Sammlung in dem Speicher zu halten, oder serialize / deserialisieren die Sammlung selbst?

Ich weiß, dass Be- / Entladen Teilmengen von Daten können schwierig, wenn irgendeine Art von Datenfilterung durchgeführt wird. Lassen Sie uns sagen, dass ich Filter auf ID, so meine neue Teilmenge von Daten aus zwei vorherigen analysierten Untergruppen enthalten. Dies wäre kein Problem ist, ich eine Masterkopie der gesamten Daten im Speicher zu halten.

Ich habe gelesen, dass Google-Sammlungen sind gut und effizient, wenn große Mengen an Datenhandling und bieten Methoden, die simplify viele Dinge, so könnte dies eine Alternative anbieten, damit mir die Sammlung im Speicher zu halten. Dies ist nur allgemeine reden. Die Frage, was Sammlung Nutzung ist eine separate und komplexe Sache.

Weißt du, was ist die allgemeine Empfehlung für diese Art von Aufgabe? Ich würde gerne hören, was Sie mit ähnlichen Szenarien gemacht haben.

kann ich mehr Einzelheiten zur Verfügung stellen, wenn nötig.

War es hilfreich?

Lösung

Sie können eine Datenbank in die Anwendung einbetten, wie HSQLDB . Auf diese Weise können die Dateien zum ersten Mal analysieren und dann SQL verwenden einfache und komplexe querys zu tun.

  

HSQLDB (HyperSQL DataBase) ist die   führende relationale SQL-Datenbank-Engine   in Java geschrieben. Es verfügt über einen JDBC-Treiber   und unterstützt fast voll ANSI-92 SQL   (BNF Baum-Format) sowie viele SQL: 2008   Erweiterungen. Es bietet einen kleinen, schnellen   Datenbank-Engine, die Angebote im Speicher   und plattenbasierte Tabellen und unterstützt   eingebettet und Server-Modus .   Darüber hinaus enthält es Werkzeuge,   als Befehlszeilen SQL-Werkzeug und GUI   Abfrage-Tools.

Andere Tipps

Wenn Sie Tonnen von Daten, viele Dateien haben, und Sie sind auf Speicher kurz, können Sie einen ersten Scan der Datei zu indizieren es tun. Wenn die Datei in Datensätze durch Zeilenumbrüche geteilt, und Sie wissen, wie der Datensatz zu lesen, könnten Sie indizieren Ihre Aufzeichnungen von Byte-Stellen. Später, wenn Sie eine bestimmte Menge von Indices lesen wollen, würden Sie ein schnelles Nachschlagen tun, um herauszufinden, welche Bytebereichen Sie lesen müssen, und diejenigen, die aus der Datei des Input zu lesen. Wenn Sie mehr nicht jene Einzelteile benötigen, werden sie GCed sein. Sie werden nie mehr Einzelteile halten, als Sie in den Haufen benötigen.

Dies wäre eine einfache Lösung sein. Ich bin sicher, können Sie eine Bibliothek finden Sie mit mehr Funktionen zur Verfügung zu stellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top