2010-09-01 3 views
1

Lors de la sérialisation d'objets, peut-on attribuer un nom à différents objets? Ainsi, que lors de la lecture des objets, je peux appeler n'importe quel objet par son nom et plus tard, avoir accès à ses membres.Peut-on attribuer un nom aux objets sérialisés?

Je peux le faire en assignant un champ unique à chaque objet et le comparer plus tard avec ce champ mais cela coûtera - O (n).

Existe-t-il un autre moyen d'accéder rapidement à un objet particulier, sérialisé dans un fichier de supposer 100 objets.

Merci

Répondre

1

Mettez-les dans une carte et sérialiser la carte à la place?

+0

accès encore le coût de l'objet serait - O (n) –

+0

Si c'est un 'HashMap' il est' O (1) ' –

+0

Si vous comptez le temps de désérialiser, il est Sur). Je pense qu'il cherche un moyen de sauter dans le fichier et de sortir un seul des objets, comme un index de base de données. – erickson

0

Pourquoi tous les objets doivent-ils être dans un flux? Que faire si vous sauvegardez simplement chaque objet dans son propre fichier et accédez à l'objet par nom de fichier? Si vous avez vraiment besoin d'un seul fichier, vous pouvez les archiver tous dans un fichier ZIP et le laisser gérer la fonction d'indexation pour vous.

+0

L'idée de mapper un "nom" arbitraire à un nom d'entrée de fichier ZIP me rend mal à l'aise. –

+0

pas d'objets réside dans des milliers, cela rendrait la chose peu complexe. –

+0

@Kuri - Votre problème dit 100 objets, mais dans tous les cas, vous utiliseriez le même code pour 2 objets ou 10000, donc je ne suis pas sûr de ce que vous voulez dire en rendant la chose complexe. – erickson

Questions connexes