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

[Résolu]
Signaler
Messages postés
57
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
17 mars 2015
-
Messages postés
57
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
17 mars 2015
-
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

Messages postés
57
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
17 mars 2015

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 );
     } 
    }
  }
}
Messages postés
15154
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 octobre 2021
99
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...
Messages postés
57
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
17 mars 2015

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.
Messages postés
15154
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 octobre 2021
99
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...
Messages postés
15154
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 octobre 2021
99
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...

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.
Messages postés
57
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
17 mars 2015

merci pour tous, j'ai trouvé la solution
Messages postés
15154
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 octobre 2021
99
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...