J'ai actuellement un programme de type tableur qui conserve ses données dans une ArrayList de HashMaps. Vous serez sans doute choqué quand je vous dis que cela ne s'est pas avéré idéal. La surcharge semble utiliser 5 fois plus de mémoire que les données elles-mêmes.Alternatives HashMap pour le stockage de données à mémoire efficace
This question demande à propos des bibliothèques de collections efficaces, et la réponse a été utiliser Google Collections. Mon suivi est "quelle partie?". J'ai lu la documentation mais je n'ai pas l'impression que cela donne une très bonne idée des classes qui conviennent le mieux. (Je suis également ouvert à d'autres bibliothèques ou suggestions). Je recherche donc quelque chose qui me permettra de stocker des données de type feuille de calcul dense avec un minimum de mémoire.
- Mes colonnes sont actuellement référencés par des objets sur le terrain, des lignes par leurs index, et les valeurs sont des objets, presque toujours des chaînes
- Certaines colonnes auront beaucoup de valeurs répétées
- opérations principales sont à mettre à jour ou supprimer enregistrements basés sur les valeurs de certains champs, ainsi que l'ajout/suppression/combinaison de colonnes
Je connais des options comme H2 et Derby mais dans ce cas, je ne cherche pas à utiliser une base de données intégrée.
EDIT: Si vous suggérez des bibliothèques, j'apprécierais également si vous pourriez me diriger vers une classe particulière ou deux qui s'appliqueraient ici. Alors que la documentation de Sun contient généralement des informations sur les opérations O (1), O (N), etc., je ne vois pas grand-chose dans les bibliothèques tierces, ni vraiment de description des classes qui conviennent le mieux à ce que .
Voici un outil pour vous aider à évaluer l'empreinte mémoire de la structure de votre choix: http://code.google.com/p/memory-measurer/, et voir quelques exemples de données que j'en ai dérivés: http://code.google.com/p/memory-measurer/wiki/ElementCostInDataStructures –
Ci-dessus les liens ont brocken –