Hello world ! (c'est jamais facile le mercredi...)
Voila dans le cadre d'un exo de java, je dois supprimer un objet qui est dans une arraylist, et ensuite "passer" le garbage collector, or je sais très bien que celui-ci passe quand il veut...
Voici mon code pour l'override de Finalize();:
et celui du main pour effacer un objet de ma ArrayList:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @Override public void finalize() { try { super.finalize(); nbPersonnages--; } catch (Throwable e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Je dis bien que c'est dans le cadre de l'exercice que je dois passer le gc, car en soit... mais bon j'aimerais bien comprendre, en cherchant j'ai appris que le gabage collector, répertoriait les objet à partir du moment où il n'y avait plus aucune référence à ceux ci....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 for(int i=0; i<player.size();i++) { if(player.get(i).getNickName().equals("Homer")) { player.remove(i); System.out.println("Le joueur index "+ i +" du nom de: Homer a ete efface" +"\n"+ player); System.gc(); }; }/* Iterator<Player> iterator = player.iterator(); while ( iterator.hasNext() ) { Object o = iterator.next(); Player p = (Player)o; if(p.getNickName() == "Homer") { iterator.remove(); System.out.println("J'ai trouve Homer"); } }* System.gc(); System.out.println("nombre de joueurs: "+ Player.getNbJoueur()); System.out.println("liste ordonnée des employés:\n"+ Collections.sort(player)); /
Donc si je supprime l'objet de la liste il n'existe plus aucune manière d'y accéder, si ?
Bonne journée![]()
Partager