Récupérer des valeurs d'un tableau en java

[Fermé]
Signaler
-
 Nico -
Bonjour , j'ai créé un tableau en deux dimensions .J'aimerai savoir comment je fait pour récuperer certaines valeurs du tableau .Illustration de mon propos:
Soit mon tableau: 0 1
0 3
0 2
1 3
1 6
J'aimerai en fait garder les lignes qui m'intéressent c'est à dire , pour le ligne 0 2
et la ligne 1 6
Le but c'est d'associer pour la première colonne la deuxième, et donc pour des valeurs 0,1 on associe 2,6.Comment faire pour ne faire apparaitre que les lignes dont j'ai besoin
Merci d'avance pour vos conseils

10 réponses

Je viens de me relire et je pense ne pas avoir été clair
j'ai un tableau par exemple celui ci:
0 1
0 3
0 2
1 3
1 6
1 5
0 4
et moi j'aimerai récuperer certaine ligne de ce tableau, voilà ce que j'ai écrit:

switch (tab[0][j]){
case 0 : if(tab[1][j]!=2)
System.out.print ("l="+tab[0][j]+" ");
System.out.println ("m="+tab[1][j]);break;
case 1 : if(tab[1][j]!=6)
System.out.print ("l="+tab[0][j]+" ");
System.out.println ("m="+tab[1][j]);break;
case 2 : if(tab[2][j]!=10)
System.out.print ("l="+tab[1][j]+" ");
System.out.println ("m="+tab[2][j]);break;
}
Dans ce cas j'aimerai bien récuperer les lignes 0 2 ou 1 6
Merci
Yop,

ben si tu remplaces les != par des == tu devrais afficher tes lignes.

++

Nico
Merci Nico, mais tu peux m'expliquer la différence entre != et ==SVP
!= signifie différent
== signifie égal.
Donc dans ton programme, tu affiche seulement les lignes qui dans la première colonne il y a 0 et la deuxième colonne est différente de 0. Or toi si j'ai bien compris c'est le contraire que tu veux. Donc c'est ca le programme :

switch (tab[0][j]){
case 0 : if(tab[1][j] ==2)
System.out.print ("l="+tab[0][j]+" ");
System.out.println ("m="+tab[1][j]);break;
case 1 : if(tab[1][j] ==6)
System.out.print ("l="+tab[0][j]+" ");
System.out.println ("m="+tab[1][j]);break;
case 2 : if(tab[2][j] ==10)
System.out.print ("l="+tab[1][j]+" ");
System.out.println ("m="+tab[2][j]);break;
}

Nico
> Nico
Je crois que tu n'as pas saisi comment fonctionne un tableau à 2 dimensions en java.
prenons un exemple :
[ 0 1 ]
[ 2 3 ]
[ 4 5 ]

tab[0][0] = 0
tab[0][1] = 1
tab[1][0] = 2
tab[1][1] = 3
....

Lorsque tu as tab[0][0], le premier [0] revient à avoir la ligne 0, et le deuxième [0] revient à avoir l'élément 0 de la ligne. Or tu n'as que 2 éléments dans ta ligne vu que c'est un couple de valeur. Donc ca ne vaut que 0 ou 1.

Nico
> Nico
Ok nico, j'avais pas saisi, Merci Je te recontacte si ya un problème, sinon Merci beaucoup
> Nico
Sinon c'est ce que tu voulais? Il marche correctement?

Nico
> Nico
Merci nico , j'ai encore bidouillé le code et ça marche enfin.Merci et vivi les programmeurs de ce forum
> Nico
:D

Nico
Bonjour, voici ce que j'ai tapé, mais ça ne marche toujours pas,il ne m'affiche que m=0

switch (tab[0][j]){
case 0 : if(tab[1][j]==2)
System.out.print ("l="+tab[0][j]+" ");
System.out.println ("m="+tab[1][j]);break;
case 1 : if(tab[1][j]==6)
System.out.print ("=="+tab[0][j]+" ");
System.out.println ("m="+tab[1][j]);break;
case 2 : if(tab[1][j]==10)
System.out.print ("l="+tab[1][j]+" ");
System.out.println ("m="+tab[1][j]);break;
}
donne ton programme complet.

Nico
Je ne l'ai pas encore tapé, mais le problème que j'ai est relatif à une parti du prog.En fait tu peux definir un tableau aveccles valeurs ci-dessu et je cherche juste à extraire ces valeurs.
Je t'envoie untruc que j'ai tapé :
public class Problème{
public static void main{String args[]){
int[][]tableau={valeurs que je t'ai donné précédement}
switch (tab[0][j]){
case 0 : if(tab[1][j]==2)
System.out.print ("l="+tab[0][j]+" ");
System.out.println ("m="+tab[1][j]);break;
case 1 : if(tab[1][j]==6)
System.out.print ("=="+tab[0][j]+" ");
System.out.println ("m="+tab[1][j]);break;
case 2 : if(tab[1][j]==10)
System.out.print ("l="+tab[1][j]+" ");
System.out.println ("m="+tab[1][j]);break;
}}}
Ben il te suffit de mettre une boucle pour parcourir ton tableau et tester à chaque fois et puis de mettre des {} pour tous les if :

for (int j=0;j<tab.length;j++) {
switch (tab[0][j]){
case 0 : if(tab[1][j]==2) {
System.out.print ("l="+tab[0][j]+" ");
System.out.println ("m="+tab[1][j]);
}
break;
case 1 : if(tab[1][j]==6) {
System.out.print ("=="+tab[0][j]+" ");
System.out.println ("m="+tab[1][j]);
}
break;
case 2 : if(tab[1][j]==10) {
System.out.print ("l="+tab[1][j]+" ");
System.out.println ("m="+tab[1][j]);
}
break;
}

}

Nico
Bonjour Pierre,
Au vu de tes resultats m=0 je ne vois qu'une seule erreur possible tu as écrit un tableau à une seule dimension. Seulement tu n'as pas écrit ton tableau dans ton bout de code alors je l'écrit pour voir si c'est comme ça que tu l'as écrit.

int[][]tableau={{0,1},
{0,3},
0 2
1 3
1 6
1 5
0 4
}
excusez-moi.
J'ai fais une Erreur en collant le tableau.Je le colle à nouveau.

int[][]tableau={{0,1},{0,3},{0,2},{1,3},{1,6} ,{1,5},{0,4}};