Hallo,
ich möchte ein Tabellen-Objekt erstellen. Dabei stellt sich mir die Frage, ob ich es über eine Map oder zwei Listen implementieren soll.
Im ersten Fall hätte ich List<Map<Object, Object>>. Jede Map entspricht einer Zeile. Schlüssel sind die Spaltennamen.
Im zweiten Fall List<List<Object>> und List<Object>. Die erste Liste enthält die Werte, die zweite Liste die Spaltennamen, die ich jedes mal durchsuchen müsste, um dann mit dem Index auf den Wert zuzugreifen.
Die Zugriffszeit im ersten Fall ist mit O(1) konstant und damit besser als im zweiten Fall O(n) linear.
Ich möchte aber den Platzbedarf optimieren, im ersten Fall wäre dies O(n*m), n Zeilen und m Spalten. Im zweiten Fall O(n) und damit wieder linear.
Mich würde es interessieren, ob jemand weiß, ob die JVM im ersten Fall eine Optimierung vornimmt, sodass der Platzbedarf auch auf O(n) sinkt. Es sind ja immer die gleichen Schlüssel, die für jede Zeile verwendet werden. Die Schlüssel könnten also für alle Zeilen auf immer ein Objekt verweisen. Weiß vielleicht jemand, ob das so ist???
ich möchte ein Tabellen-Objekt erstellen. Dabei stellt sich mir die Frage, ob ich es über eine Map oder zwei Listen implementieren soll.
Im ersten Fall hätte ich List<Map<Object, Object>>. Jede Map entspricht einer Zeile. Schlüssel sind die Spaltennamen.
Im zweiten Fall List<List<Object>> und List<Object>. Die erste Liste enthält die Werte, die zweite Liste die Spaltennamen, die ich jedes mal durchsuchen müsste, um dann mit dem Index auf den Wert zuzugreifen.
Die Zugriffszeit im ersten Fall ist mit O(1) konstant und damit besser als im zweiten Fall O(n) linear.
Ich möchte aber den Platzbedarf optimieren, im ersten Fall wäre dies O(n*m), n Zeilen und m Spalten. Im zweiten Fall O(n) und damit wieder linear.
Mich würde es interessieren, ob jemand weiß, ob die JVM im ersten Fall eine Optimierung vornimmt, sodass der Platzbedarf auch auf O(n) sinkt. Es sind ja immer die gleichen Schlüssel, die für jede Zeile verwendet werden. Die Schlüssel könnten also für alle Zeilen auf immer ein Objekt verweisen. Weiß vielleicht jemand, ob das so ist???