Tri type panier pour tableau de tableau de String

MarreDeJava Messages postés 4 Date d'inscription jeudi 25 mars 2010 Statut Membre Dernière intervention 23 avril 2010 - 22 avril 2010 à 23:42
MarreDeJava Messages postés 4 Date d'inscription jeudi 25 mars 2010 Statut Membre Dernière intervention 23 avril 2010 - 23 avril 2010 à 11:34
Bonsoir, j'essaye actuellement et depuis le début de la soirée de trier par la méthode dite panier un tableau de tableau de String.
En fait, dans ce tableau j'ai dans chaque colonne des String toutes écrites du genre: aX avec X un entier compri entre 1 et 8. EX: a1,a3,a4 (en vérité ça représente des formats de page) et les colonnes sont des bacs de papiers.

Et j'aimerais faire une métohde qui me disent en rentrant en paramètre mon tableau:
Pour le bloc 1 (respectivement la colonne 0) il y a temps de fois le format a1, temps de fois le format a2 etc... pour chaque bloc.
J'ai essayé avec ça:

public void DipositionDesBlocs(String[][] tab){
int i,j,k;
int compteur=0;
for (j=0;j<tab.length;j++){
for(i=0;i<tab[0].length;i++){
for (k=1;k<=8;k++){
if (tab[j][i].contains("a"+k)){
compteur++;
System.out.println("Il y a dans le bloc"+(j+1)+" "+compteur+"fois le format"+k);
}
}
}
}
}
Le problème est que ça ne compte pas correctement, pensez-vous donc que je dois faire pas mal de if/else pour résoudre mon problème du genre

if (tab[0][i]).contains("a"+1)
compteurA1++;
if(tab[0][i]).contains("a"+2)
compteurA2++;
etc...

Merci!

1 réponse

MarreDeJava Messages postés 4 Date d'inscription jeudi 25 mars 2010 Statut Membre Dernière intervention 23 avril 2010
23 avril 2010 à 11:34
Bonjour, j'ai réussi à obtenir ce genre de tri:
Il y a pour le bac n°1 3 fois le format a1
Il y a pour le bac n°2 1 fois le format a1
Il y a pour le bac n°3 3 fois le format a1
Il y a pour le bac n°1 2 fois le format a2
Il y a pour le bac n°2 2 fois le format a2
Il y a pour le bac n°3 3 fois le format a2

avec le code:
public void DipositionDesBacs(String[][] tab){
int i,j,k;
int compteur;
for (k=1;k<=8;k++){

for (j=0;j<tab.length;j++) {
compteur=0;
for(i=0;i<tab[0].length;i++){

if (tab[j][i].contains("a"+k)){
compteur++;
}

}
if(compteur!=0){
System.out.println("Il y a pour le bac n°"+(j+1)+" "+compteur+" fois" +
"le format a"+k);
}
}
}
}

J'ai besoin d'aide pour optimiser ce code je voudrais que cela m'affiche:
pour le bac 1: 3 a1 et 2 a2
pour le bac 2: 4 a1 et 3 a2 etc....

Si quelqu'un voit comment faire ça m'intéresse.
Merci
0
Rejoignez-nous