4 votes

Création d'une liste d'objets en Java

Je pensais donc créer une liste d'objets comme ceci

ArrayList<Obj> lst = new ArrayList<Obj>(10);
for (int i = 0; i < 10; i++) {
  Obj elem = new Obj();
  lst.add(elem);
}

Est-ce légal ou dois-je craindre que l'objet 1 soit détruit lorsque la référence de l'élément commence à pointer vers l'objet 2 ? Si c'est illégal, comment pourrais-je le faire autrement ? Existe-t-il un moyen de générer automatiquement dix noms de référence différents ?

5voto

Magesh khanna Points 183

Le collecteur d'ordures ne supprimera les objets que lorsqu'il n'y aura plus de références pointant vers eux. Dans votre cas, votre liste pointe vers 10 objets distincts. Objet et ils sont sûrs jusqu'à ce que vous perdiez la référence à l'objet lst Objet.

3voto

Jeffrey Points 22209

C'est parfaitement légal. Votre ArrayList contiendra une référence à l'objet que vous venez de créer, il ne sera donc pas GCed.

1voto

Vincent Ramdhanie Points 46265

Votre approche est parfaitement valable. Vous vous retrouverez avec une liste de dix objets distincts.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X