Pour mieux savoir choisir parmi les différentes collections disponibles en Java (ou créer une classe dérivée) j'ai consulté la documentation à Lien externe. Un aspect important est la vitesse des opérations essentielles, résumée (d'après un test qu'ils ont exécuté) dans la table suivante.
| Collection Benchmark Results | ||||
|---|---|---|---|---|
| Operations | ||||
| Class | Add | Iterate | Random | Remove |
| ArrayList | 0 ms | 660 ms | 0 ms | 2,360 ms |
| LinkedList | 50 ms | 1,100 ms | 26,800 ms | 0 ms |
| Vector | 0 ms | 880 ms | 0 ms | 2,580 ms |
| TreeSet | 330 ms | 1,430 ms | N/A | 60 ms |
| HashSet | 110 ms | 1,430 ms | N/A | 50 ms |
Reste à étudier un tableau (simple) d'entiers de longueur inconnue avant exécution, comme autre possibilité pour stocker les affinités dans mon contexte et les bornes des affinités dans mes intensions.
include java.util.* pour disposer de ces classes