Es könnte hilfreich sein, wenn Sie etwas genauer wären, aber...
Ich denke, dass die Aufgabe Sie dazu bringen soll, zu verstehen, dass das Programm die Datentypen und die Größe der Daten (zeilen- und spaltenweise) erst zur Laufzeit kennt.
Von dem, was Sie mir sagen, würde ich versuchen, eine Tabelle durch eine veränderbare Liste zu modellieren. Programmieren Sie es generisch, so dass Sie die Implementierung auswechseln können:
List> table = new ArrayList>();
Sind das nur Videospiele? Wenn ja, würde ich ein VideoGame-Objekt erstellen, Felder wie Name, Hersteller, System usw. speichern und in eine veränderbare Datenstruktur einfügen - und fertig! Es hängt alles von den Operationen ab, die Sie mit der Liste durchführen wollen...suchen und sortieren Sie? Sind die Abrufzeiten für Sie von Bedeutung?
Wenn Sie wollen, dass der Abruf O(1) oder, ungenau ausgedrückt, "etwa eine Anweisung" dauert, sollten Sie eine Map verwenden. Wenn der Schlüssel der Name eines Videospiels ist, wird er in O(1) zurückgegeben. Wenn es mehrere Einträge gibt, sollten Sie eine Liste als Wert verwenden.
Ich hoffe, das war nicht zu lang und verwirrend, aber bitte geben Sie an, ob die Anzahl der Felder bekannt ist oder ob sie ganz allgemein sein muss. Wenn es ganz allgemein sein muss, verwenden Sie einfach eine Datenbank! Sie ist dafür gemacht, generisch zu sein... oder wenn Sie das wirklich nicht tun wollen, verwenden Sie die erste Methode, die ich beschrieben habe.
Ich hoffe, es hilft.
2 Stimmen
Dies ist eine kontextabhängige Frage, die fast immer von den spezifischen Daten abhängt, die Sie zu speichern versuchen.