Comment acceder aux données d'une liste avec une structure complex

Résolu
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015 - 1 déc. 2012 à 12:38
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015 - 4 déc. 2012 à 21:49
Bonjour tout le monde;
j'ai un probléme d'accés aux donner. j'ai utilisé une structure de données un peu compliquée; à cause de ça je n'arrive pas à acceder aux données. Voici ma structure :

public ArrayList PayoffMatrices = new ArrayList();

// classe payoff
public class Payoff {
public ArrayList<CoalitionPayoff> CoalitionPay = new ArrayList<CoalitionPayoff>();
public ArrayList PlayerPay = new ArrayList();
}
 //  class CoalitionPayoff
public class CoalitionPayoff {
public ArrayList  Coalition = new ArrayList();
public double GainCoalition = 0;
}
// class PlayerPayoff
public class PlayerPayoff {
public int Id;
public double PlayerPay = 0;
}



Je veux acceder aux données de la lsite :PayoffMatrices. J'ai ecrit ce code mais je ne sais pas comment continuer puisque il ne me donne pas la main pour acceder aux données de chaque matrice.

for(int i=0;i < PayoffMatrices.size(); i++)
  for(int j=0; j < PayoffMatrices.get(i).length;j++) 


merci d'avance.

8 réponses

ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
4 déc. 2012 à 21:49
Voici la solution :
for(int i=0;i < Mod.PayoffMatrices.size(); i++)
{	
 Payoff[][] matrice = PayoffMatrices.get(i);
 for(int j=0; j < matrice.length; j++){
    for(int h =0; h < matrice[0].length; h++){
        Payoff pay = matrice[j][h];
        for(int k = 0; k < pay.CoalitionPay.size(); k++){
            double playerPay = pay.CoalitionPay.get(0).PlayerPay;
    System.out.println("GainCoalition "+pay.CoalitionPay.get(k).GainCoalition + "  PlayerPay" +pay.CoalitionPay.get(k).PlayerPay+ "  Coalition :"+pay.CoalitionPay.get(k).Coalition );
     } 
    }
  }
}
3
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
1 déc. 2012 à 15:51
Hello,

// création d'une liste d'objets Payoff
public ArrayList PayoffMatrices = new ArrayList();

// traitement...

// récupération d'un objet Payoff
Payoff pay = PayoffMatrices.get(0);
double playerPay = pay.PlayerPay.get(0).PlayerPay;


Un conseil, nomme un peu mieux tes variables histoire de ne pas te mélanger les pinceaux...

@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
2 déc. 2012 à 10:57
Bonjour;
merci pour ton aide mais moi j'ai besoin d'une liste des matrices comme décrit ci-dessous.

Chaque matrice représente dans la list la matrice des gains de chaque joueur par rapport aux autres joueurs. Dans la matrice de gain, je dois conserver à quelle equipe(coalition) appertient chaque joueur, et le gain d'equipe, et le gain de chaque membre de l'equipe. C'est pour ça je dois utiliser cette représentation mais là, je suis bloquée... j'ai pas pu acceder aux données.


public ArrayList PayoffMatrices = new ArrayList();

// classe payoff
public class Payoff {
public ArrayList<CoalitionPayoff> CoalitionPay = new ArrayList<CoalitionPayoff>();
}
 //  class CoalitionPayoff
public class CoalitionPayoff {
public ArrayList  Coalition = new ArrayList();
public double GainCoalition = 0;
public double PlayerPay = 0;
}


merci d'avance.
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
3 déc. 2012 à 13:24
Hello,
Dans ce cas là:
// création d'une liste de matrices Payoff
public ArrayList PayoffMatrices = new ArrayList();

// traitement...

// récupération d'une matrice
Payoff[][] matrice = PayoffMatrices.get(0);

// récupération d'un objet Payoff
Payoff pay = matrice[1][2];
double playerPay = pay.PlayerPay.get(0).PlayerPay;


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
3 déc. 2012 à 13:25
Je n'ai pas testé, mais c'est un truc comme ceci...


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Utilisateur anonyme
4 déc. 2012 à 09:03
En fait, quel est le problème exactement ?


--
Pylouq
Heureux sont ceux qui lisent le Réglement, ils ne finiront peut-être pas au bûcher.
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
4 déc. 2012 à 19:51
merci pour tous, j'ai trouvé la solution
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
4 déc. 2012 à 21:41
Dans ce cas d'indiquer ta solution et de cliquer sur«repose acceptée»


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous