Bonjour à tous,
Je développe actuellement -à titre personnel- un algorithme de détection des pixels contigus dans une image. Voici son fonctionnement simplifié, pour l'exploration d'une zone de l'image:
On créée un objet "cellule" défini par un attribut (String), ses coordonnées (int), les coordonnées de son père (int).
On appelle sa méthode 'Rayonne', qui créée de nouveaux objets "cellule" dans une direction donnée de l'espace (Up Down Right Left) si la case connexe correspondante répond à certaines conditions.
Si aucune de ces conditions n'est remplie, cette case met à jour le tableau (boolean) de suivi de son père.
Lorsque le tableau est complet, le père met à jour le tableau de son propre père, et ainsi de suite jusqu'à la case d'attribut "Main" qui n'a pas de père.
Lorsque le tableau de suivi de "Main" est complet, c'est que toute la zone a été explorée.
Les coordonnées des cellules sont stockées dans un ArrayList<String>. (int x+","+int y)
Cet algorithme fonctionne parfaitement sur des zones restreintes (2500 px ça va encore), mais dès que l'on augmente la taille de la zone à explorer, l'appli rame un maximum et finit par se bloquer (Ctrl Alt Suppr nécessaire).
Ma question:
Est-ce parce que j'ai utilisé des ArrayList ?
Est-ce parce qu'il y a trop d'objets créés ?
Est-ce à cause d'une autre raison ?
Merci!
> Uncle Bobo
Partager