Bonjour à tous,
Comme écris dans le titre, je suis en train d'ecrire une classe de matrice en utilisant l'object Vector, dont voici les sources:
L'interface à implémenter:
L'implémentation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public interface Matrice{ //public int[][] getMatrice(); // return a new object //public int getLignes(); //public int getColonnes(); public void insertData(int no_ligne, int no_colonne, int donnee); //public int getData(int no_ligne, int colonne); public void printMatrice(); // public void printColonne(int no_colonne); //public void printLigne(int no_ligne); }
Ainsi que le programme de test:
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 import java.util.*; public class Vecteur implements Matrice{ private Vector vect; private int lignes; private int colonnes; public Vecteur(){ this.vect = new Vector(); this.lignes = 0; this.colonnes = 0; } private void agrandirVect(int size){ for(int i=lignes; i <= size ; i++) this.vect.insertElementAt(new Vector(), i); this.lignes = size; } public void insertData(int no_ligne, int no_colonne, int donnee){ if(no_ligne >= lignes) this.agrandirVect(no_ligne); Vector tmp = (Vector)vect.elementAt(no_ligne); tmp.insertElementAt(donnee, no_colonne); } public void printMatrice(){ int col; Vector tmp; for(int i=0; i < vect.size(); i++){ tmp =(Vector)vect.elementAt(i); col = tmp.size(); for(int j=0; j < colonnes; j++) System.out.print(tmp.elementAt(j)+" "); System.out.println(); } } }
Voila ce que j'obtiens comme erreur à l'exécution:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class Test{ public static void main(String[] args){ Matrice mat = new Vecteur(); for(int i=0; i<5; i++) for(int j=0; j<5; j++) mat.insertData(i,j, i+j); mat.printMatrice(); } }
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 > 0
at java.util.Vector.insertElementAt(Vector.java:558)
at Vecteur.insertData(Vecteur.java:24)
at Test.main(Test.java:8)
J'arrive pas à voir pour quoi j'ai cette ArrayIndexOutOfBounds ...
Vous avez une idée ?
Merci d'avance![]()
Partager