Große Mengen an Daten speichern

Kenta1561

Bekanntes Mitglied
Hallo,

ich schreibe gerade ein Programm, bei dem ich eine große Menge an Daten brauche.
Vereinfacht beschrieben brauche ich sowas:
Ich übergebe ein Wort (String) an eine Methode und bekomme dann die zutreffenden Werte zurück.

Ich habe erst an HashMap gedacht, weil ich HashMap schonmal benutzt habe und es recht einfach war, jedoch verbraucht dies sehr viel RAM (vermute ich zumindest, bin kein Experte) und ich habe irgendwie das Gefühl, dass das nicht die optimalste Lösung ist.

An eine Datenbank habe ich auch gedacht, die einfachsten Anweisungen kenne ich ja zumindest. Jedoch will ich keine Datenbank hosten, und wenn zum Beispiel meine Freunde mein Programm ausprobieren wollen, will ich nicht, dass sie erstmal eine Datenbank hosten müssen/dass sie sich erstmal mit meinem Computer verbinden müssen (Port freigeben und was weiß ich was man noch alles machen muss) um mein Programm zu benutzen.

Gibt es auch eine andere Möglichkeit große Mengen an Daten zu speichern? Ist vielleicht eine XML-Datei eine optimale Lösung dafür?

LG
Kenta1561
 

Kenta1561

Bekanntes Mitglied
@thecain
Ok, also mit "große Menge" war gemeint, dass das für mich eine große Menge ist, nicht für ein Computer. (Also dass das viel Tipparbeit werden wird) - also ich würde jetzt mal so sagen - um die 1500 Datensätze mit jeweils 3-4 Attributen(?).

LG
Kenta1561
 

InfectedBytes

Top Contributor
Das ist nichts, da kannst du ruhig eine HashMap nehmen.
Einfach mal großzügig abschätzen, was sind das für Attribute?
1500 Datensätze * 10 Attribute * 8 Byte (double) = ~120 kB
Da kommt dann ggf. noch etwas mehr hinzu, wegen dem management, der verwendeten Datenstruktur etc. Aber die Größenordnung wird sich nicht ändern.
Bei den typischen 8GB RAM die die meisten Leute haben, fällt das überhaupt nicht auf.

Falls es doch mal größer werden sollte (mehrere 100 MB), würde ich dir schon eine DB empfehlen, dabei musst du nichtmals irgendwas hosten oder ports freigeben. z.b. per SQLite
 

Kenta1561

Bekanntes Mitglied
@InfectedBytes
Also ich hab sehr wenig Ahnung von Datenbanken (deshalb frage ich auch gerade :D), aber ich dachte, dass Datenbanken Daten in einer Art Tabelle speichern und dann zum Beispiel als Website darauf zugreift um Daten zu bekommen. Müssten dann Datenbanken nicht auf einem Server gehostet sein, damit man drauf zugreifen kann?
Ist dann SQLite was anderes oder habe ich Datenbanken falsch interpretiert? :confused:

Und noch was: Ab wann sollte man/ist es empfehlenswert, Daten in einer XML-Datei zu speichern?

LG
Kenta1561
 

InfectedBytes

Top Contributor
Du hast Datenbank falsch interpretiert. Eine Datenbank ist nichts weiter als eine Software, welche Daten für dich "clever" managed und diese Daten in einer (oder mehreren) Dateien organisiert. Im Webseiten Bereich ist dies dann oft ein MySQL server, welcher ein eigenständiges Programm ist und auf einem bestimmten Port auf Anfragen wartet und diese beantwortet. Diese Anfragen kommen dann z.B. von einem php script.
Bei SQLite ist die "Server Software" einfach teil deines Programms und kann direkt per API benutzt werden (ohne Sockets, etc.). SQLite speichert deine Daten dann in einer Datei auf deinem lokalen system.

Und noch was: Ab wann sollte man/ist es empfehlenswert, Daten in einer XML-Datei zu speichern?
(Achtung persönliche Meinung voraus)
XML? Meiner Meinung nach am besten gar nicht... Wenn du Dinge lokal speichern willst, dann doch bitte in einem "ordentlichen" Format. Als Ersatz für XML finde ich persönlich json ganz gut.
Ansonsten, wenn du eh Richtung Datenbanken gehen willst, solltest du es eben direkt in einer Datenbank speichern anstatt in einer xml
 

InfectedBytes

Top Contributor
Es geht mir in dem Fall auch um die Syntax, XML hat viel zu viel redundanz.
Code:
<root>
  <something>
    xyz
  </something>
</root>
Als vergleich
Code:
"root" : {
  "something" : "xyz"
}
Oder noch etwas besser (ist allerdings kein "echtes" json)
Code:
root : {
  something : "xyz"
}

Ich persönlich finde eben das man json viel besser lesen kann und außerdem ist es auch noch kompakter.
 

mrBrown

Super-Moderator
Mitarbeiter
Warum ist deiner Meinung nach JSON zum Beispiel ordentlich und eine gute Alternative zu XML? Für mich sehen JSON und XML (abgesehen vom Syntax) gleich aus.
Imho ist JSON wesentlich lesbarer für Menschen, als XML, und auch näher an typischen Objekten. Außerdem fällt der ganze Overhead weg, also etwas speichersparender ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Welcher Datentyp für sehr große Zahlenbereiche? Allgemeine Java-Themen 1
F Große Datenmengen effizient programmieren Allgemeine Java-Themen 51
N Das große O berechnen Allgemeine Java-Themen 2
F Best Practice Große Anzahl an Objekten speichern und lesen Allgemeine Java-Themen 19
R Große Zahlen in Worten abkürzen Allgemeine Java-Themen 10
K Große JSON-Dateien schnell und effizient verarbeiten Allgemeine Java-Themen 16
VfL_Freak Große und seltsame Probleme nach Java-Update auf V1.8.0_91 Allgemeine Java-Themen 3
E Best Practice Verdammt große Objekte Allgemeine Java-Themen 10
P Große Datenstruktur im Speicher halten Allgemeine Java-Themen 13
M Einfluss von Caching auf die Performance (große Arrays) Allgemeine Java-Themen 24
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
P Datentypen Große Datenmenge Sortiert halten Allgemeine Java-Themen 12
D große Textdatei filtern Allgemeine Java-Themen 13
M Große Datei mit Regex durchsuchen Allgemeine Java-Themen 4
R POI große Exceldatei schreiben Allgemeine Java-Themen 7
R Dateigestützte Collection für große Datenmengen Allgemeine Java-Themen 5
K Scanner - große Textfile, nur 0 ab betim. Wert Allgemeine Java-Themen 4
trash Das große Problem: .jar Archiv Allgemeine Java-Themen 19
J Große Datei einlesen und gestückelt verarbeiten Allgemeine Java-Themen 4
I Große Datei am effektivsten/performantesten auslesen und auswerten? Allgemeine Java-Themen 6
S große CSV-Dateien Importieren. Beste Lösung ?! AWS,S3,Hadoop!? Allgemeine Java-Themen 4
P große double Zahlen und modulo Allgemeine Java-Themen 8
O Große Anzahl Bilder laden Allgemeine Java-Themen 7
A Mit RegEx große Dokumente erfassen Allgemeine Java-Themen 14
X Wie verdammt große Datein öffnen? Allgemeine Java-Themen 2
G Große Datenmengen per JDBC Allgemeine Java-Themen 5
P Große Datenmenge wie speichern (HashMap? TreeMap?) Allgemeine Java-Themen 11
G Große XML-Dateien einlesen und auswerten . Allgemeine Java-Themen 2
P Performance: Ziehen ohne Zurücklegen (große Datenmenge) Allgemeine Java-Themen 10
I JNI - Große Daten übertragen Allgemeine Java-Themen 6
T Große Dateibestände löschen - Speicherproblem Allgemeine Java-Themen 20
S Große ArrayListen Allgemeine Java-Themen 8
S große Datei einlesen! Allgemeine Java-Themen 7
J Große Zahl (double) as text ausgeben? Allgemeine Java-Themen 2
S Kleines Eclipse Problem, große Wirkung Allgemeine Java-Themen 7
H Referenzen statt Objekte für große Speicherstrukturen Allgemeine Java-Themen 19
K Große Herausforderung Allgemeine Java-Themen 2
F Zu große Werte beim byteweisen Lesen mit BufferedReader.read Allgemeine Java-Themen 5
D Große Klasse - was fällt euch so ins Auge? Kritik bitte! Allgemeine Java-Themen 10
M Große Dateien laden Allgemeine Java-Themen 2
F Große Dateien schnell einlesen Allgemeine Java-Themen 14
A Mengen Allgemeine Java-Themen 12
C Best Practice Speichern kleineren Mengen Stammdaten? Allgemeine Java-Themen 3
K Listen,Bäume,Mengen Allgemeine Java-Themen 3
I Mehrere Klassen mit den selben Daten Allgemeine Java-Themen 5
padde479 Collections Daten in Dreiecksform Allgemeine Java-Themen 13
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
A Hartgecodete Daten auslagern Allgemeine Java-Themen 4
F Laden von bestimmten Daten aus TAR Archiv Allgemeine Java-Themen 23
S Webservices für binäre Daten? Allgemeine Java-Themen 5
OnDemand Daten in RAM zwischenspeichern oder lieber aus DB holen? Allgemeine Java-Themen 24
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
J JSON Daten von einer Webseite erhalten Allgemeine Java-Themen 2
S Entities aus XML - Daten. Allgemeine Java-Themen 1
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
N Daten einer JCoTable in JTextArea anzeigen Allgemeine Java-Themen 7
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
C Daten für Klassifikationsverfahren gewinnen Allgemeine Java-Themen 6
J Daten von Quelltext Allgemeine Java-Themen 5
K OOP Daten addieren sich bei GUI-Eingabe Allgemeine Java-Themen 10
J Jasper Reports - Daten vom Hoster Allgemeine Java-Themen 2
kodela Daten während Laufzeit zugriffsbereit Allgemeine Java-Themen 15
J Millisekunde zwischen 2 Daten Allgemeine Java-Themen 6
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
R Android Daten online senden Allgemeine Java-Themen 0
P Datenbank-MiniGUI fügt keine Daten ein Allgemeine Java-Themen 4
K Gespeicherte Daten von einer LinkedList auf vier LinkedList verteilen Allgemeine Java-Themen 6
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
OnDemand Desktop-Applikation schreiben, wie daten persistent? Allgemeine Java-Themen 9
S Erste Schritte Fehlender Gedanken-Ansatz bei Interpretation von Daten Allgemeine Java-Themen 1
J Auslesen Daten Java/HTML Allgemeine Java-Themen 15
D Daten in MySQL-Datenbank schreiben Allgemeine Java-Themen 13
A Swing FileWriter schreibt keine Daten in Datei Allgemeine Java-Themen 13
M Daten aus anderen Programmen auslesen Allgemeine Java-Themen 2
D Best Practice Login-Daten: Wie am besten abrufen? Allgemeine Java-Themen 6
L Best Practice Log Dateien analysieren und eventuell passende Daten am Chart darstellen Allgemeine Java-Themen 1
J Serial Port Daten empfangen Allgemeine Java-Themen 5
H Daten via COM Schnittstelle erhalten Allgemeine Java-Themen 2
J Daten persistent speichern Allgemeine Java-Themen 14
S Allgemeine parallelisierte Loesung um Daten im Hintergrund zu laden..? Allgemeine Java-Themen 6
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
G Daten aus Website auslesen Allgemeine Java-Themen 7
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
O Serial Port Daten als Tastaturanschlag senden Allgemeine Java-Themen 0
N Zeitabstand zwischen 2 Daten(Mehrzahl von Datum) Allgemeine Java-Themen 3
T Input/Output Daten in eine Datei schreiben Allgemeine Java-Themen 4
Z daten bindung Allgemeine Java-Themen 1
A Datentypen Gregorian Calendar - 2 Daten sind gleich?? Allgemeine Java-Themen 3
L Vergleich-Xml-Daten Allgemeine Java-Themen 3
vandread Daten verschlüsseln mit Java oder Datenbank Allgemeine Java-Themen 15
A Daten in Formularen/Vorlagen erstellen und ausdrucken Allgemeine Java-Themen 3
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
Todesbote Excel Blattschutz aufheben und Daten einfügen Allgemeine Java-Themen 3

Ähnliche Java Themen


Oben