Bonjour,
personnellement, je changerais 3 choses dans ta classe :
1. Ne pas utiliser un Array de documents mais une liste de documents :
Tu l'initialises ensuite en ArrayList par exemple, cela te permet de ne pas bloquer ta liste de documents a un nombre définit mais de pouvoir en ajouter autant que tu le souhaites (via les méthodes de List, tu as donc les méthodes add, remove, size ou get, regarde la javadoc pour plus de détail).
2. Je n'ai pas testé, mais je pense très fortement que ta méthode afficherAuteur ne marche pas.
En effet, au début de la méthode, tu réinitialises tes documents avec une capacité de 0, normalement, tu ne rentres donc jamais dans la boucle for.
L'utilisation de la classe List pour tes documents, te permettra de résoudre le problème.
3. Dans la méthode ajouter, tu n'est pas obligé d'utiliser le boolean trouvé pour déterminer si tu retournes true ou false.
Plutôt que ca, il te faut renvoyer true par défaut et si tu trouve dans la boucle une correspondance, alors tu renvoie false.
Voici une version modifiée :
1 2 3 4 5 6 7 8 9
|
public boolean ajouter(Documents doc) {
for (int i = 0 ; i < tab.length ; i++) {
if(tab[i].numEnregistrement==(doc.numEnregistrement))
return false;
}
return true;
} |
Sans oublier que les identifiants d'un tableau commencent a base 0.
Ce qui veut dire qu'un tableau de taille 5 aura des identifiants de 0 a 4.
Par conséquent, ta ligne :
while(trouvé == false && i <= tab.length)
Devrait te donner une exception, il te faut arrêter a i < tab.length (ce problème se retrouvera aussi dans la classe List avec la méthode size)
Partager