Bonjour à tous,
J'utilise un grand nombre de TreeMap dans mon programme, ce qui fait que j'obtiens régulièrement l'erreur suivante :
Ne sachant pas comment représenter ce que je souhaite d'une manière plus légère, je viens tenter de vous soutirer des conseils.Code:java.lang.OutOfMemoryError: GC overhead limit exceeded
Voici donc mon problème. J'ai un très grand nombre d'éléments et un tableau de double qui contient les distances entre ces éléments.
t[i][j] représente la distance entre l'élément d'indice i et l'élément d'indice j.Code:
1
2 /* Supposons que j'ai 3000 elements */ double[][] t = double[3000][3000];
Je souhaite pouvoir connaître rapidement les plus proches voisins (au sens de t) de chaque élément. C'est là que j'ai utilisé des TreeMap. Pour chaque élément i, j'ai construit une TreeMap contenant l'ensemble des autres éléments ordonnés en fonction de leur distance à i (ie : on ordonne les éléments j en fonction de t[i][j]).
C'est comme cela que j'obtiens énormément de TreeMap et que je dépasse la mémoire. Je pourrais recalculer à chaque fois que j'en ai besoin les voisins d'un élément mais ce serait beaucoup trop long.
Y aurait-il une structure de donnée qui me permette de faire en prenant moins de place ?
Merci d'avance pour votre aide !