[java] creer une structure composée

Fermé
amine33700 - 17 nov. 2008 à 23:57
 Sims' - 18 nov. 2008 à 13:33
Bonsoir,

je veux créer un tableau ArrayList qui va contenir un objet structuré , mon problème ici est comment créer un objet qui contient deux types différents (String et int) comme les structures en C.


merci d'avancea
A voir également:

2 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
18 nov. 2008 à 00:10
Salut,

Tu crées une classe qui possède un String et un int et tu crées un ArrayList de cette classe:
class Couple
{
    public String s;
    public int i;

    public Couple(String s, int i)
    {
         this.s = s;
         this.i = i;
    }
}

ArrayList<Couple> ar = new ArrayList<Couple>();
Couple c = new Couple("machin", 2);
ar.add(c);


8
A la limite tu peux créer un constructeur par type de donnée et créer les getter/setter pour chaque donnée...

Si je met un int, j'efface le string... cela permettrait de pouvoir stocker uniquement des int ou des string et non pas des couples de valeurs...

class Couple
{
    private String s ;
    private int i ;

    public Couple(String s)
    {
         this.s = s ;
         this.i = 0 ;
    }

    public Couple(int i)
    {
         this.s = null ;
         this.i = i ;
    }

    public int getInt()
    {
        return i ;
    }

    public void setInt(int i)
    {
        this.i = i ;
        this.s = null ;
    }

    public string getString()
    {
        return s ;
    }

    public void setString(String s)
    {
        this.s = s ;
        this.i = 0 ;
    }
}
0
RE-BON SOIRE:


MERCI POUR VOTRE AIDE;

JE CHERCHE UN TYPE QUI PEUT DIRECTEMENT CONTENIR CE QUE JE VEU FAIRE SANS CREE UNE CLASSE ET MERCI ENCORE POUR VOTRE AIDE
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
18 nov. 2008 à 00:39
Un tableau d'objet alors?
Object tab[] = new Object[2];
tab[0] = new String("machin");
tab[1] = new Integer(1);

ArrayList<Object[]> ar = new ArrayList<Object[]>();
ar.add(tab);

Il faudra passer par des cast pour récupérer tes valeurs avec leur type initial.

Note que cette méthode n'est pas terrible...
0
Sims' > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
18 nov. 2008 à 13:26
Hello,

Ou encore directement mettre les objets dans l'arraylist :

String s1 = new String("machin");
Integer i2 = new Integer(2);

ArrayList list = new ArrayList();

list.add(s1);
list.add(i2)


mais après tu devra tester pour savoir s'il s'agit d'un Integer ou d'un String et se n'est pas l'idéal...
0