Comparer deux tableaux
sss
-
Heliotte Messages postés 1491 Date d'inscription Statut Membre Dernière intervention -
Heliotte Messages postés 1491 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je compare deux tableaux p et f
si une case de p se trouve dans f alors la variable exist recoit true sinon elle reste faux .
le probleme que ce code ne fonctionne pas il me renvoi toujours faux
dans le main :
je compare deux tableaux p et f
si une case de p se trouve dans f alors la variable exist recoit true sinon elle reste faux .
le probleme que ce code ne fonctionne pas il me renvoi toujours faux
boolean compare (Vector premisses,Vector faits) {boolean existe=false; int i=0; int j=0; while ( j<faits.size() && i<premisses.size() ) { if( premisses.elementAt(i).equals(faits.elementAt(j))) { i++; existe=true; break;} else j++; } return(existe); }
dans le main :
boolean exist=v.compare(p,f); if (exist) {System.out.println("regle declenchable");} else System.out.println("regle non declenchable");}
A voir également:
- Comparer deux tableaux en c
- Fusionner deux tableaux excel - Guide
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Nombre de jours entre deux dates excel - Guide
- Tableaux croisés dynamiques - Guide
2 réponses
le principe de comparaison est, à mon avis, incorrect.
Algorithme:
Algorithme:
Admettons tableaux t1{1, 2, 3} et t2{3, 4, 5} POUR i = 0; i<TAILLE(t1) ; i++ ..POUR j = 0; j<TAILLE(t2) ; j++ ....SI t1(i) == t2(j) ALORS ......existe=VRAI; ....FIN SI ..FIN j FIN i
Tout simplement avec deux boucles for each :
Remarque : j'ai mis Collection, parce que c'est plus général que Vector, ça permettra par exemple de comparer aussi un Vector avec des List, etc.
En toute rigueur, on devrait quand même imposer que les deux Collection aient le même type de donnée, ce qui donne une formulation paramétrée :
public static boolean compare(Collection c1, Collection c2) { for (Object o1 : c1) // Pour chaque objet de c1 for (Object o2 : c2) // Pour chaque objet de c2 if ((o1==null && o2 ==null) || (o1!=null && o1.equals(o2)) return true; return false; }
Remarque : j'ai mis Collection, parce que c'est plus général que Vector, ça permettra par exemple de comparer aussi un Vector avec des List, etc.
En toute rigueur, on devrait quand même imposer que les deux Collection aient le même type de donnée, ce qui donne une formulation paramétrée :
public static <E> boolean compare(Collection<E> c1, Collection<E> c2) { for (E e1 : c1) for (E e2 : c2) if ((e1==null && e2 ==null) || (e1!=null && e1.equals(e2)) return true; return false; }La confiance n'exclut pas le contrôle