Indice de tableau en java

Fermé
scfps - 25 mai 2010 à 16:59
 Utilisateur anonyme - 28 mai 2010 à 00:48
Bonjour, j'aimerai savoir comment sous java afficher les indices[i][j], d'une valeur stockée dans un tableau a deux dimensions, sans passer par les array list?
merci d'avance



A voir également:

3 réponses

Utilisateur anonyme
26 mai 2010 à 00:28
Salut,


elt 1 dimension 1 >> [0][0]
elt 1 dimension 2 >> [0][1]

elt 2 dimension 1 >> [1][0]
elt 2 dimension 2 >> [1][1]

elt 3 dimension 1 >> [2][0]
elt 3 dimension 2 >> [2][1]

etc...

Cordialement,

Dan
0
merci damino mais je crois que je me suis mal fait comprendre , j'ai un tableau de char a deux dimensions, et je voudrai par une methode recuperer les index correspondant a un caractere du tableau afin de les renvoyer
0
Utilisateur anonyme
27 mai 2010 à 08:49
Ce n'est sans doute pas exactement ce que tu veux faire, mais l'exemple suivant t'aidera peut-être:

//Supposons que nous avons un tableau de caractères (char) à 2 dimensions (monTableau)
//et que la 1ère dimension représente les lettres a à z et la 2ème dimension celles de z à a
char[][] monTableau = {   
{'a', 'z'}, {'b', 'y'}, {'c', 'x'}, {'d', 'w'}, {'e', 'v'}, {'f', 'u'}, {'g', 't'},
{'h', 's'}, {'i', 'r'}, {'j', 'q'}, {'k', 'p'}, {'l', 'o'}, {'m', 'n'}, {'n', 'm'},
{'o', 'l'}, {'p', 'k'}, {'q', 'j'}, {'r', 'i'}, {'s', 'h'}, {'t', 'g'}, {'u', 'f'},
{'v', 'e'}, {'w', 'd'}, {'x', 'c'}, {'y', 'b'}, {'z', 'a'},
};
               
System.out.println("LISTE des deux dimensions:");
System.out.println("1   2\n");
         
for(int i = 0; i < monTableau.length; i++)
{
  System.out.println(monTableau[i][0] + "   " + monTableau[i][1]);
 }

//Nous voulons maintenant obtenir les indices du caractère 'r':
      	
char chAtrouver = 'r';
String strAtrouver = "" + chAtrouver;
System.out.println("\nNous voulons savoir ou se trouve le char \'r\' (dimension 1) et\n"
+ "quel est le char qui lui correspond (dimension 2):\n");
for(int i = 0; i < monTableau.length; i++)
{
  char chLu = monTableau[i][0];
  String strLu = "" + chLu;
  if(strLu.equals(strAtrouver))
 {
   System.out.println("Le char \'r\' se trouve en [i][0] soit: [" + i + "][0] (dimension 1)");
   System.out.println("Le char se trouvant en [i][1] soit [" + i + "][1] (dimension 2) est "
  + "\'" + monTableau[i][1] + "\'.");
 }
 }


Cordialement,

Dan
0
decidement je m'exprime comme un pied, c'est un tableau ayant des valeur en char et les indices sont en int.
du style Montableau [0][0] = ' a';
[1][0] = ' b';

donc ma methode doit etre capable si on me donne le char 'a' , de retourner les indices [i][j] correspondant .

je vous remercie de la peine que vous vous donnez.
cordialement
0
Utilisateur anonyme
28 mai 2010 à 00:48
C'est ce qui est fait ici:

..............
if(strLu.equals(strAtrouver))
 {
   System.out.println("Le char \'r\' se trouve en [i][0] soit: [" + i + "][0] (dimension 1)");
   System.out.println("Le char se trouvant en [i][1] soit [" + i + "][1] (dimension 2) est "
  + "\'" + monTableau[i][1] + "\'.");
 }


On peut alors dire que pour la dimension 1 le char 'r' a pour indices [i1][j1]:

int i1 = i; // toujours i de la boucle
int j1 = 0; // toujours 0 puisque dimension 1

et pour le caractère dimension 2 [i2][j2]:

int i2 = i; // toujours i de la boucle
int j2 = 1; // toujours 1 puisque dimension 2

il suffit donc que la méthode retourne i1 et on en déduit les 3 autres indices (j1, i2 et j2)

Céation du tableau au niveau classe principale (qu'on nomme à tort variable globale: c'est mieux de dire variable (ou champs) de classe

         private static char[][] monTableau = {   
               {'a', 'z'}, {'b', 'y'}, {'c', 'x'}, {'d', 'w'}, {'e', 'v'}, {'f', 'u'},
               {'g', 't'}, {'h', 's'}, {'i', 'r'}, {'j', 'q'}, {'k', 'p'}, {'l', 'o'},
               {'m', 'n'}, {'n', 'm'}, {'o', 'l'}, {'p', 'k'}, {'q', 'j'}, {'r', 'i'},
               {'s', 'h'}, {'t', 'g'}, {'u', 'f'}, {'v', 'e'}, {'w', 'd'}, {'x', 'c'},
               {'y', 'b'}, {'z', 'a'},
               };


La méthode que je propose:
     public static int retourIndice1(char ch)
      {
         int i = 0;
         String strAtrouver = "" + ch; // conversion en String  
      
         System.out.println("\nNous voulons savoir ou se trouve le char \'r\' (dimension 1):\n");
         for(i = 0; i < monTableau.length; i++)
         {
            char chLu = monTableau[i][0];
            String strLu = "" + chLu; // conversion en String
            if(strLu.equals(strAtrouver))
            {
              System.out.println("Le char \'r\' se trouve en [i][0] soit: [" + i + "][0] (dimension 1)");
               break;
            }
         }
         
         int i1 = i;
         return i1;
      }


Et l'appel de cette méthode depuis la méthode main de la classe pour tester:

        char chAtrouver = 'r';
// appel méthode: retournant i1
         int i1 = retourIndice1(chAtrouver);
        // on en déduit les 3 autres indices (j1, i2, j2)
         int j1 = 0;
         int i2 = i1;
         int j2 = 1;
         
         System.out.println("\nLES 4 INDICES:\n");
         System.out.println("i1 = " + i1 + "\nj1 = " + 0 + "\ni2 = " + i2 + "\nj2 = " + 1);


Cordialement,

Dan
0