BOnjour,
je dois faire une méthode qui vérifie qu'un tableau ait une capacite minimale spécifiée, et si non, rallonger ce tableau pour que l'on puisse y aajouter des éléments.
Le problème est que je n'y parviens pas, j'ai une arrayOutOfBound Error.
Voici le code :
Ne faites pas attention à la vérif de la couleur,
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
30
31
32
33
34
35
36
37
38
39 public void ensureCapacity(int capaciteMin,Color col){ // assure que la capacité du tableau représentant les éléments // est au moins de capaciteMin int ancienneCapacite = rouge.length; PointCol [] E; if (capaciteMin > ancienneCapacite) { if(col == Color.red){ int nouvelleCapacity = ancienneCapacite * 3 / 2 + 1; E = new PointCol [nouvelleCapacity]; System.arraycopy(rouge, 0, E, 0, rouge.length); //if(nouvelleCapacity < capaciteMin) // nouvelleCapacity = capaciteMin; rouge = E; } else { int nouvelleCapacity = ancienneCapacite * 3 / 2 + 1; E = new PointCol [nouvelleCapacity]; System.arraycopy(bleu, 0, E, 0, bleu.length); //if(nouvelleCapacity < capaciteMin) // nouvelleCapacity = capaciteMin; bleu = E; } } }
le principe que je voudrais avoir est le suivant :
Je crée un nouveau tableau d'un capacité suffisante, je copie tous les elements del'ancien tableau dans le nouveau et ensuite, je fais pointer l'ancien sur le nouveau.
Pouvez vous me dire ou cela coince t-il?
Merci
Partager