List.clear
permettrait de supprimer les éléments sans réduction de la capacité de la liste.
groovy:000> mylist = [1,2,3,4,5,6,7,8,9,10,11,12]
===> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
groovy:000> mylist.elementData.length
===> 12
groovy:000> mylist.elementData
===> [Ljava.lang.Object;@19d6af
groovy:000> mylist.clear()
===> null
groovy:000> mylist.elementData.length
===> 12
groovy:000> mylist.elementData
===> [Ljava.lang.Object;@19d6af
groovy:000> mylist = new ArrayList();
===> []
groovy:000> mylist.elementData
===> [Ljava.lang.Object;@2bfdff
groovy:000> mylist.elementData.length
===> 10
Ici maliste ai effacé, les références aux éléments détenus par elle a obtenu entaché de nullité, mais il garde le même support de tableau. Puis maliste a été réinitialisé et a obtenu une nouvelle sauvegarde de la baie, le vieux se leva et GCed. Ainsi, il détient sur la mémoire, l'autre jette sa mémoire et obtient réaffectées à partir de zéro (avec la valeur par défaut de la capacité). Ce qui est mieux dépend de si vous voulez réduire les déchets-collecte de désabonnement ou de minimiser la quantité de mémoire inutilisée. Si la liste de colle autour assez longtemps pour être déplacé hors de l'Eden pourrait être un facteur dans la décision, qui est plus rapide (car cela pourrait rendre les déchets-collecte, il est plus coûteux).